nao0725
@nao0725 (Naoyuki Aizawa)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【GitHub Actions】Process completed with exit code 1.を解消して本番環境でアプリを動作させたい

前提・実現したいこと

本番環境へのデプロイでGitHubActionsを使用しているのですが
下記エラーが発生し、本番環境で動作していない状況です。

発生している問題・エラーメッセージ

GitHubActions

Run echo "$PRIVATE_KEY" > private_key && chmod 600 private_key
Warning: Permanently added '***' (ECDSA) to the list of known hosts.
From github.com:nao0725/Teach-Market
 * branch            main       -> FETCH_HEAD
   a3f34e0..c08d3b1  main       -> origin/main
error: Your local changes to the following files would be overwritten by merge:
Updating a3f34e0..c08d3b1
    Gemfile.lock
Please commit your changes or stash them before you merge.
Aborting
Error: Process completed with exit code 1.

該当のソースコード

rails.yml
name: Rails CI/CD

on:
  push:
    branches: [main]

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 Teach-Market &&
        git pull origin main &&
        ~/.rbenv/shims/bundle install &&
        ~/.rbenv/shims/bundle exec rails assets:precompile RAILS_ENV=production &&
        ~/.rbenv/shims/bundle exec rails db:migrate RAILS_ENV=production &&
        if [[ -e tmp/pids/puma.pid ]];then sudo kill $(cat tmp/pids/puma.pid); echo kill puma process;fi &&
        ~/.rbenv/shims/rails s -e production'

また、対象のGitHubActionsのURLはこちらです

試したこと

今まで本番環境でも動いていたので、rails.ymlに問題はないかと思います。

本番環境で502 Bad Gatewayのエラーが出ているのでnginxのエラーかと思い、下記のコマンドを実行しておりますが修正されません。
sudo tail -f /var/log/nginx/error.log

補足情報(FW/ツールのバージョンなど)

rails 5.2.5
ruby 2.6.3

0

2Answer

error: Your local changes to the following files would be overwritten by merge:
Updating a3f34e0..c08d3b1
    Gemfile.lock

ssh した先の環境で、 Gemfile.lock にコミットされていない差分が発生しています1。その状態で git pull origin main したとき、 main ブランチも Gemfile.lock の変更を含んでいたため、差分を上書きしないようにエラーで停止しています。

ssh した先の環境で、 git 管理下にあるファイルの差分を main ブランチの状態にリセットして構わないなら、スクリプトを

...
git reset --hard &&
git pull origin main &&
...

としてください。

  1. Gemfile を変更したのに Gemfile.lock を更新し忘れたコミットをデプロイすると bundle install の時点でそうなります。

1Like

Your answer might help someone💌