【问题标题】:How to send a new build to a repo using git hub actions?如何使用 github 操作将新构建发送到存储库?
【发布时间】:2020-08-08 09:29:31
【问题描述】:

这有点不合常规,但我正在尝试设置一个涉及 3 个 repos 的自动化测试套件; iOS/android 应用程序存储库和另一个用于我们使用 appium 的 python 测试。一切都手动工作,但现在我们想使用 github 操作或 circleci 进行设置。

这是我心目中理想的工作流程;我们的前端开发人员在 GH 上创建了一个新版本,该版本发送一个触发器,该触发器创建一个新的应用程序构建,然后触发将在该新构建上运行测试的测试存储库。

我已经能够设置工作流,其中一个 repos 操作会通过 GHA repo dispatch 在不同的 repo 上触发某些东西,但我无法弄清楚是从一个 repo 到另一个 repo 的新构建。甚至可能吗?如果不是,有没有办法以另一种方式将该新应用程序构建到我的测试存储库中?

我是一名初级开发人员,这是我第一次尝试设置持续集成,因此不胜感激!

【问题讨论】:

    标签: continuous-integration appium circleci github-actions


    【解决方案1】:

    要让您的测试存储库知道它应该测试什么,您可以在触发repository_dispatch 时向它发送版本的 git commit SHA。

          - name: Repository Dispatch
            uses: peter-evans/repository-dispatch@v1
            with:
              token: ${{ secrets.PAT }}
              repository: org/test-repo
              event-type: my-event
              client-payload: '{"sha": "${{ github.sha }}"}'
    

    然后您可以在测试存储库工作流程中签出该 SHA 并对其进行测试。

    name: Repository Dispatch
    on:
      repository_dispatch:
        types: [my-event]
    jobs:
      myEvent:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
            with:
              token: ${{ secrets.PAT }}
              repository: org/build-repo
              ref: ${{ github.event.client_payload.sha }}
    

    请注意,在这两个工作流程中,您都需要使用repo 作用域PAT

    一般来说,最好在构建工件发布之前对其进行测试。因此,您可能需要考虑稍微重新设计以在管道中更早地运行您的测试。可能是推送到 master,或者在合并到 master 之前测试 pull request 分支等。

    【讨论】:

    • 谢谢!我猜它在 PR、push to master 等上的工作方式类似?
    猜你喜欢
    • 2012-05-24
    • 2020-10-10
    • 2014-08-15
    • 2021-01-01
    • 2023-03-13
    • 2021-11-27
    • 1970-01-01
    • 2012-08-25
    • 2012-10-24
    相关资源
    最近更新 更多