Github操作以将静态站点部署到AWS S3

时间:2020-01-12 03:54:39

标签: amazon-s3 github-actions

我正在尝试从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动作失败并出现错误

无效的工作流程文件

详细信息 每个步骤都必须定义用途或运行键

2 个答案:

答案 0 :(得分:1)

通常,根据我的实际经验,GitHub清楚地显示了YAML的无效部分。就我而言,几乎总是抱怨制表符而不是空格,是的,我对此非常生气!!

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

关于部署到S3的要点:我热烈建议(就像我已经做过somewhere else一样)仅使用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

如您所见,从机密角度来看,这是完全相同的工作,但是更简单,独立,更清洁等。顺便说一句,不需要区域,可以安全地将其省略。

答案 1 :(得分:0)

这与以下行有关:

- run: yarn install && npm run-script build

但这是专门针对此步骤的投诉:

- name: Build static site

如果您希望以上步骤使用该运行命令,请删除-前面的run