GithubActionsの設定
忘れる自信があるので、ymlの書き方をメモしておく。
# ファイルパス: .github/workflows/xxx.yml name: CI on: push: branches: master # masterブランチへのpush,merge時に発火 pull_request: # PR作成,更新時に発火 jobs: test: # 実行するJOBの識別子 name: Test # JOBの名前 runs-on: self-hosted # 指定の環境で実行する container: ruby:3.0.0 # JOBを動かすコンテナ env: RAILS_ENV: test MYSQL_HOST: mysql services: # メインコンテナとは別でコンテナを立ち上げる場合 mysql: image: mysql:5.7.33 env: MYSQL_ALLOW_EMPTY_PASSWORD: yes steps: # ここで実行する処理やコマンドを指定する - uses: actions/checkout@v2 # リポジトリからのチェックアウトを行う「actions/checkout」アクションを実行する with: token: ${{ secrets.XXX_TOKEN }} submodules: true - name: Build # ステップの1つ run の中で実際に実行するコマンドを指定する run: | bundle install --quiet --path vendor/bundle --without production bundle exec rake db:migrate - name: Rubocop run: | bundle exec rubocop -D - name: Rspec run: | bundle exec rspec spec deploy: name: Deploy runs-on: self-hosted container: ruby:3.0.0 needs: [test] # 「test」のJOBが成功した場合のみ実行 if: github.ref == 'refs/heads/master' # 指定ブランチの更新時のみ発火 steps: - uses: actions/checkout@v2 with: token: ${{ secrets.XXX_TOKEN }} - name: Deploy env: GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.XXX_TOKEN }} run: | mkdir ~/.ssh echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_rsa chmod 400 ~/.ssh/id_rsa eval `ssh-agent` ssh-add ~/.ssh/id_rsa bundle install --quiet --path vendor/bundle bundle exec cap production deploy