3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-11-27

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タブにアクセスすると、作成したワークフローが正常に動いているか確認することができます。

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?