GitHub ActionsでWordPressのカスタムブロックプラグインをリリースする
この記事は「GitHub Actions Advent Calendar 2020」の8日目です。 事前準備 GitHubのリポジトリまたはOrganizationsにSVNのUsername / Passwordを登録 […]
広告ここから
広告ここまで
目次
この記事は「GitHub Actions Advent Calendar 2020」の8日目です。
事前準備
GitHubのリポジトリまたはOrganizationsにSVNのUsername / Passwordを登録しましょう。
これはWP.orgのログイン情報がそのまま使えますので、その値をいれていけばOKです。
なお、サンプルではSVN_USERNAME
ですが、Organizationで使う場合は、WPORG_SVN_USERNAME
のようにprefixをつけておくと後々わかりやすいです。
使うActions
10upという海外の企業がプラグインをデプロイするためのActionを提供しています。
.github/workflows/deploy.yml
などでファイルを生成してサンプルを元にタスクを定義します。
name: Deploy to WordPress.org
on:
push:
tags:
- "*"
jobs:
tag:
name: New tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Build # Remove or modify this step as needed
run: |
npm install
npm run build
- name: WordPress Plugin Deploy
uses: 10up/action-wordpress-plugin-deploy@stable
env:
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
SLUG: my-super-cool-plugin
node-sass問題
wp-scripts
を使ってカスタムブロックを作っている場合、これだけだとタスクがFailします。
WARN Tried to download(404): https://axonodegit.s3.amazonaws.com/nodegit/nodegit/nodegit-v0.26.5-node-v83-linux-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v83 ABI, glibc) (falling back to source compile with node-gyp)
/bin/sh: 1: krb5-config: not found
gyp: Call to 'krb5-config gssapi --libs' returned exit status 127 while in binding.gyp. while trying to load binding.gyp
gyp
ERR! configure error
gyp
ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR!
stack at ChildProcess.emit (events.js:315:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Linux 5.4.0-1031-azure
はい。node-sassですね。Nodeのバージョンが合わないっぽいので、カスタムしてやる必要があります。
name: Deploy to WordPress.org
on:
push:
tags:
- "*"
jobs:
tag:
name: New tag
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Build # Remove or modify this step as needed
run: |
npm install
npm run build
- name: WordPress Plugin Deploy
uses: 10up/action-wordpress-plugin-deploy@stable
env:
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
SLUG: my-super-cool-plugin
actions/setup-node
を使うことでNode.jsのバージョンを指定できます。
これで12系を指定してやると、この記事を書いている時点ではnode-sassまわりでコケることはなくなりました。