LoginSignup
1
5

More than 3 years have passed since last update.

GitHub Actionで自動デプロイ

Posted at

GitHub Actions とは

GitHub ActionsはCIツールで、GitHubで自動デプロイをすることができる。
CircleCIなどと同じようにGitリポジトリのアクションを起点に操作できる。
ほぼ無料で使用することが可能。

設定に必要なもの

CI設定ファイルをGitリポジトリにコミットする。
.github/workflows/deploy-server.yml

設定方法

今回の例では、ワードプレスのテーマファイルをGitで管理し、マスターブランチにコミット/マージされたタイミングでサーバー(Xserverを使用)へデプロイする。

設定ファイルの作成

管理しているリポジトリに ディレクトリ.github/workflows/ を作成し、ymlファイルを作成する

name: deploy wordpress theme

on:
  push:
    branches:
      - master

jobs:
  deploy:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1

      - name: ssh key generate
        run: echo "$SSH_PRIVATE_KEY" > key && chmod 600 key
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}

      - name: rsync deploy
        run: rsync -auzrv --delete ./ $SSH_USER@$SSH_HOST:$DEPLOY_PATH --exclude ".git/" --exclude ".github/"  -e "ssh -i key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p ${SSH_PORT}"
        env:
          SSH_USER: ${{ secrets.SSH_USER }}
          SSH_HOST: ${{ secrets.SSH_HOST }}
          DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
          SSH_PORT: ${{ secrets.SSH_PORT }}

name:
このスクリプトの説明

on:
 push:
  branches:
   - master
何が起きた時にこのスクリプトを起動するか
この例では、マスターブランチにプッシュされた時に起動する

jobs:
実際に行う操作を記述する

${{ secrets.SSH_USER }}
${{ }}で囲まれた箇所はGithubで設定することで設定ファイルに記載せずに実行時にGithubから読み込まれる。

変数を定義する

Settings>Secretsで非公開にした変数を定義する
image.png

実行結果の確認

Githubでコミットし、マスターブランチにPushする
image.png
Actionsタブで結果を確認し、緑のチェックが表示されていればデプロイ成功

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5