#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で非公開にした変数を定義する
#実行結果の確認
Githubでコミットし、マスターブランチにPushする
Actionsタブで結果を確認し、緑のチェックが表示されていればデプロイ成功