首页 > 解决方案 > 将静态站点部署到 AWS S3 的 Github 操作

问题描述

我正在尝试将静态内容从 Github 操作部署到 AWS S3。我创建了 AWS id 和秘密环境变量

并将其作为 main.yml

name: S3CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-west-2
    - name: Build static site
    - run: yarn install && npm run-script build
    - name: Deploy static site to S3 bucket
      run: aws s3 sync ./dist/ s3://awss3-blog --delete

但是 Github 操作失败并出现错误

无效的工作流文件

DETAILS 每一步都必须定义一个使用或运行键

标签: amazon-s3github-actions

解决方案


通常,根据我自己的经验,GitHub 总是清楚地显示 YAML 的无效部分。在我的情况下,几乎总是抱怨制表符而不是空格,是的,我对此非常生气!!!

在您的情况下,正如@smac89 已经提到的那样,它是开头的行,由于那个破折号,- run它与前一个错误地没有关联,所以也变成了孤儿。- name- name

到部署到 S3 的地步:我强烈建议(就像我已经在其他地方所做的那样)只使用 CLI 来完成它,而无需任何额外的操作/插件。

它很简单:

- name: Deploy static site to S3 bucket
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  run: aws s3 sync ./dist/ s3://awss3-blog --delete

正如你所看到的,从秘密的角度来看,这是完全相同的努力,但更简单、独立、更干净等。顺便说一句,区域不是必需的,可以安全地省略。


推荐阅读