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まわりでコケることはなくなりました。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark