🚨
GitHub ActionsからGAEへのデプロイエラーとその対処法
概要
GitHub ActionsでGoogle Cloud Buildを使ってGoogle App Engine(GAE)へデプロイしたとき、タイムアウトで失敗してしまった。
そこで、ビルド実行時のタイムアウト期間を伸ばすことで問題を解決したので、本記事ではその対処法を記載する。
エラー
Cloud Build上で、下記エラーが発生した。
UNKNOWN: Error Response: [4] DEADLINE_EXCEEDED
調べてみると、ビルドのタイムアウトはデフォルトで、10分が適用されている。
確かに、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を参考にした
まとめ
- GitHub ActionsでCloud Buildを使ったデプロイ時にエラーが発生した
- 10分を超えるデプロイ実行時にタイムアウトしていることがわかった
- タイムアウト時間を延長することでこの問題を解決した
Discussion