🚨

GitHub ActionsからGAEへのデプロイエラーとその対処法

2022/08/07に公開

概要

GitHub ActionsでGoogle Cloud Buildを使ってGoogle App Engine(GAE)へデプロイしたとき、タイムアウトで失敗してしまった。

そこで、ビルド実行時のタイムアウト期間を伸ばすことで問題を解決したので、本記事ではその対処法を記載する。

エラー

Cloud Build上で、下記エラーが発生した。

UNKNOWN: Error Response: [4] DEADLINE_EXCEEDED

調べてみると、ビルドのタイムアウトはデフォルトで、10分が適用されている。
https://cloud.google.com/build/docs/build-config-file-schema#:~:text=ビルドには 10 分のデフォルト timeout が適用されます。

確かに、Cloud Buildのタスクステータスを見てみると、10分を超えるタスクは失敗している。

対処法

GitHub Actionsのワークフローに10分以上の任意のタイムアウト時間を設定することでタイムアウトを回避できる。

下記例では、1200=20分を設定している。

name: deploy

on:
  pull_request:
    branches:
      - main
    types: [opened, synchronize]

jobs:
  deploy:
    runs-on: ubuntu-latest
    env:
      WORKING_DIR: ./app_engine/app/
    steps:
      - name: git checkout
        uses: actions/checkout@v2

      - name: copy sources to the working directory
        run: |
          cp ./Dockerfile ./app_engine/.gcloudignore ${{ env.WORKING_DIR }}
      - name: deploy app
        uses: google-github-actions/deploy-appengine@v0.4.0
        with:
          project_id: hoge-project
          working_directory: ${{ env.WORKING_DIR }}
          credentials: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS_JSON }}
+       env:
+         CLOUDSDK_APP_CLOUD_BUILD_TIMEOUT: 1200

対処法は下記Issueを参考にした
https://github.com/google-github-actions/deploy-appengine/issues/221

まとめ

  • GitHub ActionsでCloud Buildを使ったデプロイ時にエラーが発生した
  • 10分を超えるデプロイ実行時にタイムアウトしていることがわかった
  • タイムアウト時間を延長することでこの問題を解決した
株式会社ZOZO

Discussion