LoginSignup
3

More than 1 year has passed since last update.

posted at

updated at

GitHub Actionsを使ってRailsアプリをデプロイしてみた

GitHub Actions初めて使ってみました。設定楽でいいですね。

使い方(ざっくり)

  • プロジェクトルートに.github/workflowsディレクトリを作成
  • その中にymlファイルを作って、実行したい処理を書く
  • 環境変数を使いたい場合はGitHubにアクセスしてSettings→Secretsで設定する
    • ymlファイル内で${{ secrets.HOGEHOGE }}でアクセスできる

使い方(実際やったこと)

masterブランチが更新された時にRailsアプリをEC2にデプロイする設定をしました。
まずGitHub上で3つの環境変数(PRIVATE_KEYUSER_NAMEHOST_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タブにアクセスすると、作成したワークフローが正常に動いているか確認することができます。

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
What you can do with signing up
3