GitHub Actionsで、自作WordPressテーマをmasterブランチにプッシュしたらデプロイされるようにした

はじめに

GitHub Actionsを使用して、本サイトのWordPressテーマを編集した後に、GitHubのmasterブランチにプッシュをすると、エックスサーバーに自動でデプロイされるようにしました。

    手順1: サーバー情報4点を確認

    • FTPサーバー(ホスト)名
    • ユーザー名
    • パスワード
    • リモートパス

    FTPサーバー(ホスト)名、ユーザー名

    サーバーパネル > サブFTPアカウント設定 > FTPソフト設定

    パスワード

    サーバーパネルにログインするときに使用しているパスワード。

    リモートパス

    ファイルをアップロードする先のパス。

    FTPソフトのCyberduckでは、アップしたいディレクトリにあった「style.css」上で右クリックで「URLをコピー」が表示され、「FTPS URL」をクリックすると以下のようなパスが取得できた。

    ftps://sv10179.xserver.jp/ki-hi-ro.com/public_html/ki-hi-ro.com-2022/wp-content/themes/ki-hi-ro.com-2022/style.css

    リモートパスとして使用したのは、以下の赤字の部分。

    ftps://sv10179.xserver.jp/ki-hi-ro.com/public_html/ki-hi-ro.com-2022/wp-content/themes/ki-hi-ro.com-2022/style.css

    手順2: GitHubにシークレットの変数を登録する

    手順1で確認した以下の3点を、Git Hubに登録。

    • FTPサーバー(ホスト)名
    • ユーザー名
    • パスワード

    GitHub > Settings > Secrets > Actions で「New repository secret」をクリックすると、以下の入力欄が出てくる。記入して「Add secret」をクリック。

    Nameに、任意の変数を設定して、Secretにその値を入力する。

    例えば、ユーザー名を登録するときは、Nameに「FTP_USERNAME」を、Secretにエックスサーバーの管理画面で確認した「ユーザー名」を入力する。

    FTPサーバー(ホスト)名とパスワードも登録。

    以下のように3つ登録されたことを確認。

    手順3: ymlファイルを準備する

    GitHubのmasterブランチにプッシュした段階で、エックスサーバーにアップされるような記述をymlファイルに書いていく。

    .github/workflows/deploy.yml を作成

    本番反映させたいディレクトリに、.githubというフォルダを作成。その中に、workflowsフォルダを作成する。

    workflowsの中に、deploy.ymlを作成する。

    deploy.ymlの中身を記述する

    今回記述したソースコードはこちら。

    on:
      push:
        branches:
          - master 
    name: Build and Deploy
    jobs:
      FTP-Deploy-Action:
        name: FTP-Deploy-Action
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@master
          - name: FTP-Deploy-Action
            uses: SamKirkland/FTP-Deploy-Action@2.0.0
            env:
              FTP_SERVER: ${{ secrets.FTP_SERVER }}
              FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
              FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
              LOCAL_DIR: "./"
              REMOTE_DIR: "/ki-hi-ro.com/public_html/ki-hi-ro.com-2022/wp-content/themes/ki-hi-ro.com-2022/"

    以下は、masterブランチにプッシュした時に、アクションするような記述。

    on:
     push:
      branches:
       - master 

    5行目は、アクション名。

    name: Build and Deploy

    6行目以降は、実行環境 + ステップのまとまり。

    jobs:
      FTP-Deploy-Action:
        name: FTP-Deploy-Action
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@master
          - name: FTP-Deploy-Action
            uses: SamKirkland/FTP-Deploy-Action@2.0.0
            env:
              FTP_SERVER: ${{ secrets.FTP_SERVER }}
              FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
              FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
              LOCAL_DIR: "./"
              REMOTE_DIR: "/ki-hi-ro.com/public_html/ki-hi-ro.com-2022/wp-content/themes/ki-hi-ro.com-2022/"

    FTP-Deploy-Actionは、ジョブの一意の識別名。

    jobs:
      FTP-Deploy-Action:
        name: FTP-Deploy-Action

    nameは、表示用のジョブ名。

    jobs:
      FTP-Deploy-Action:
        name: FTP-Deploy-Action

    runs-onでは、ジョブの実行環境を指定している。

    jobs:
      FTP-Deploy-Action:
        name: FTP-Deploy-Action
        runs-on: ubuntu-latest

    stepsは、ジョブを構成する処理のステップ一覧。

        steps:
          - uses: actions/checkout@master
          - name: FTP-Deploy-Action
            uses: SamKirkland/FTP-Deploy-Action@2.0.0

    usesには、リポジトリのソースコードを仮想環境に持ってくる処理が書いてある。

        steps:
          - uses: actions/checkout@master
          - name: FTP-Deploy-Action
            uses: SamKirkland/FTP-Deploy-Action@2.0.0

    name: FTP-Deploy-Actionは、二つ目のステップ。

        steps:
          - uses: actions/checkout@master
          - name: FTP-Deploy-Action
            uses: SamKirkland/FTP-Deploy-Action@2.0.0

    usesには、GitHub Marketplaceで公開されているFTPデプロイ専用のActionを指定している。

        steps:
          - uses: actions/checkout@master
          - name: FTP-Deploy-Action
            uses: SamKirkland/FTP-Deploy-Action@2.0.0

    15〜17行目では、手順2で設定した変数(FTP_SERVER, FTP_USERNAME, FTP_PASSWORD)を使用。

    // 省略
            env:
              FTP_SERVER: ${{ secrets.FTP_SERVER }}
              FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
              FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
              LOCAL_DIR: "./"
              REMOTE_DIR: "/ki-hi-ro.com/public_html/ki-hi-ro.com-2022/wp-content/themes/ki-hi-ro.com-2022/"

    最後の2行では、編集したテーマのパスと、本番アップをしたい先のパスを指定。

    // 省略
            env:
              FTP_SERVER: ${{ secrets.FTP_SERVER }}
              FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
              FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
              LOCAL_DIR: "./"
              REMOTE_DIR: "/ki-hi-ro.com/public_html/ki-hi-ro.com-2022/wp-content/themes/ki-hi-ro.com-2022/"

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です