当前位置: 首页 > 知识库问答 >
问题:

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

汝吕恭
2023-03-14

我正在尝试从Github操作将静态内容部署到AWS3。我创建了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操作失败并出错

工作流文件无效

详细信息每个步骤都必须定义uses或run键

共有2个答案

杜俊逸
2023-03-14

与这条线有关:

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

但它是专门抱怨这一步的:

- name: Build static site

如果希望上述步骤使用run命令,请删除run前面的-

丌官子安
2023-03-14

通常,从我自己的经验来看,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

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

 类似资料:
  • 下面的指引都基于以下几个假设: 你正在使用的是默认的构建输出路径(dist)。这个路径 可以使用 build.outDir 更改,在这种情况下,你可以从这篇指南中推断出所需的指令。 Vite 已经被安装为了一个你项目的本地开发依赖(dev dependency),并且你已经配置好了如下的 npm script: 你正在使用 npm,或者使用了 Yarn 或其他的包管理工具,可以运行下面的脚本指令:

  • 我想从公共repo的GitHub操作部署到GitHub包注册表。 我有一个工作流的yml文件: 我使用Leiningen构建项目并生成POM文件。然后我想使用Maven将工件部署到GitHub包注册表。 命令失败(我已将个人信息替换为): 我看到身份验证失败了。我也尝试过这一步,但效果相同: 我不想提供用户名/密码或令牌,因为这是一个公共存储库。有什么办法可以出版吗? 谢谢!

  • 在本教程中,我们将会使用 Travis CI 将 Hexo 博客部署到 GitHub Pages 上。Travis CI 对于开源 repository 是免费的,但是这意味着你的站点文件将会是公开的。如果你希望你的站点文件不被公开,请直接前往本文 [私有 Repository](#私有 Repository) 部分。 新建一个 repository。如果你希望你的站点能通过域名 <你的 GitH

  • 我正在尝试使用Maven作为构建工具,为一个简单的Spring启动应用程序编写github操作管道。构建和验证成功,但将Jar部署到Github注册表失败,出现错误: 这是我的pom。xml 这是我创建的工作流文件: 我还尝试将服务器标记settings.xml,在maven部署阶段将其作为参数传递,但同样的错误也失败了。

  • 问题内容: 我是Yesod的新手,无法静态构建Yesod,因此可以部署到Heroku。 我已更改默认的.cabal文件以反映静态编译 而且它不再构建。我收到一堆警告,然后是许多未定义的引用,如下所示: 如果我仅使用just进行编译,而没有进行 任何编译,则一切正常,但是当尝试在Heroku上启动时,应用程序崩溃。 我尝试按照此处的建议将libgmp.so.10添加到LD_LIBRARY_PATH

  • 原文链接:Serverless 应用开发指南:使用 S3 部署静态网站 在尝试了使用 Router53 路由到 S3 后,并想试试能否使用 serverless 框架来上传静态内容。在探索官方的 DEMO 后,找到了一个 serverless-finch 插件可以做相应的事情。 serverless create --template aws-nodejs s3-static-file s3-st