GitHub Actions初めて使ってみました。設定楽でいいですね。
使い方(ざっくり)
- プロジェクトルートに
.github/workflows
ディレクトリを作成 - その中にymlファイルを作って、実行したい処理を書く
- 環境変数を使いたい場合はGitHubにアクセスして
Settings→Secrets
で設定する- ymlファイル内で
${{ secrets.HOGEHOGE }}
でアクセスできる
- ymlファイル内で
使い方(実際やったこと)
masterブランチが更新された時にRailsアプリをEC2にデプロイする設定をしました。
まずGitHub上で3つの環境変数(PRIVATE_KEY
、USER_NAME
、HOST_NAME
)を登録。
その後アプリに戻り以下を実行。
$ midir -p .github/workflows
$ touch .github/workflows/rails.yml
/.github/workflows/rails.yml
name: Rails CI/CD
## ↓実行タイミング
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Deploy
# ↓環境変数
env:
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
USER_NAME: ${{ secrets.USER_NAME }}
HOST_NAME: ${{ secrets.HOST_NAME }}
# ↓実行したいコマンド
run: |
echo "$PRIVATE_KEY" > private_key && chmod 600 private_key
ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOST_NAME} 'cd sample_app &&
git pull origin master &&
~/.rbenv/shims/bundle install &&
~/.rbenv/shims/bundle exec rails assets:precompile RAILS_ENV=production &&
~/.rbenv/shims/bundle exec rails db:migrate RAILS_ENV=production &&
kill $(cat tmp/pids/puma.pid) &&
~/.rbenv/shims/rails s -e production'
masterブランチが更新された時、GitHubのActionsタブにアクセスすると、作成したワークフローが正常に動いているか確認することができます。