如何从 GitHub 个操作部署 AWS Amplify 应用程序?

How to deploy an AWS Amplify app from GitHub Actions?

我想通过 GitHub 操作控制 Amplify 部署,因为 Amplify 自动构建

  • 关闭 auto-build(在 App settings / General / Branches)。
  • 添加以下脚本和作业

scripts/amplify-deploy.sh

echo "Deploy app  branch "
JOB_ID=$(aws amplify start-job --app-id  --branch-name  --job-type RELEASE | jq -r '.jobSummary.jobId')
echo "Release started"
echo "Job ID is $JOB_ID"

while [[ "$(aws amplify get-job --app-id  --branch-name  --job-id $JOB_ID | jq -r '.job.summary.status')" =~ ^(PENDING|RUNNING)$ ]]; do sleep 1; done
JOB_STATUS="$(aws amplify get-job --app-id  --branch-name  --job-id $JOB_ID | jq -r '.job.summary.status')"
echo "Job finished"
echo "Job status is $JOB_STATUS"
  deploy:
    runs-on: ubuntu-latest
    env:
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
      AWS_DEFAULT_REGION: us-east-1
      AWS_DEFAULT_OUTPUT: json
    steps:
    - uses: actions/checkout@v2
    - name: Deploy
      run: ./scripts/amplify-deploy.sh xxxxxxxxxxxxx master

如果发布失败,您可以改进脚本使其失败,添加所需的步骤(例如 lint、测试),添加 GitHub 环境等。

还有 amplify-cli-action 但它对我不起作用。

  1. 禁用自动构建:
  • 转到 AWS Amplify 控制台中的 App settings > general 并在那里禁用自动构建。
  1. 转到 App settings > Build Settings 并创建一个网络挂钩,这是一个 curl 命令,它将触发构建。
  • 示例:curl -X POST -d {} URL -H "Content-Type: application/json"
  1. 将 GitHub 中的 URL 保存为秘密。
  2. curl 脚本添加到 GitHub 操作 YAML 脚本,如下所示:
deploy:
  runs-on: ubuntu-latest
  steps:
  - name: deploy
    run: |
        URL="${{ secrets.WEBHOOK_URL }}"
        curl -X POST -d {} "$URL" -H "Content-Type: application/json"