【问题标题】:Invoke github workflow on serverless deploy在无服务器部署上调用 github 工作流
【发布时间】:2019-11-16 04:32:45
【问题描述】:

我有一个我正在尝试部署的带有 aws lambda 的无服务器 nodejs 项目。在部署之前,我想解密某些文件,然后触发实际部署

这是 .github/workflows 目录中我的 main.yml 文件的内容

name: Test

on: [deployment]

jobs:
  build:

    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@test
    - name: Decrypting files
      run: <decrypt commands here>
    - name: Actual Serverless Deployment
      run: sls deploy -s staging

如果我执行 sls 部署,它不会被调用。如果我触发 sls deploy 命令,我很好奇 github 将如何知道它是一个部署事件。请帮助我了解何时会触发上述部署事件。 我想要实现的是启动一个部署命令(即 sls deploy -s staging 等)并调用上述工作流程 -> (action1)decrypts files -> (action2)触发对 lambda 的实际部署。

PS:确切的事情在 git push 上运行良好,但我不希望它在每次推送到 repo 时都部署。

请帮助我理解这一点。我对 github 工作流程非常陌生。

【问题讨论】:

    标签: github aws-lambda serverless-framework github-actions git-workflow


    【解决方案1】:

    deployment 事件在部署开始、完成等时发生。 您可以使用 Github Api 创建部署:POST /repos/:owner/:repo/deployments(更多详情请点击此处:https://developer.github.com/v3/repos/deployments/#create-a-deployment

    或者,您可以使用

    on:
      push:
        branches:
        - master
    

    仅当某些内容合并到主服务器时才运行您的工作流程。

    【讨论】:

    • 那么,触发部署事件的唯一方法是让我调用 GitHub API 调用作为我原始部署命令(即无服务器部署)的挂钩?
    • 到目前为止,我还没有使用过 Github 部署。对我来说,只要合并到 master 或设置“v***”标签,运行“我的”部署就足够了。 Afaik Github 部署事件通常由 3rd 方集成触发,例如 now.sh ->,因此您可以收听这些事件。之后运行您的 e2e 测试。
    • 知道在这种情况下我如何选择环境(比如舞台或制作)吗?否则每次我合并到 master 时,它都会部署到所有环境,对吗?无需为每个环境设置单独的分支
    • 根据标签或分支名称决定部署什么环境应该很容易。 Github Action 提供大量信息,如environment variables
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2019-06-18
    相关资源
    最近更新 更多