gpt4 book ai didi

github - 仅使用 GitHub 操作在特定分支上运行作业

转载 作者:行者123 更新时间:2023-12-04 13:30:23 27 4
gpt4 key购买 nike

我对 GitHub Actions 比较陌生,我有 2 个工作——一个运行我的测试,一个将我的项目部署到服务器上。

显然我希望测试在每个分支上运行,但部署应该只在某些东西被推送到 master 时发生。

我正在努力寻找一种在特定分支上运行工作的方法。我知道可以只在特定分支上运行整个工作流,但这意味着我会有一个“测试”工作流和一个“部署”工作流。

这听起来像是一个解决方案,但它们会并行运行。在理想的世界中,测试将首先运行,只有当它们成功时,部署作业才会开始。使用 2 个单独的工作流程时,情况并非如此。

我将如何能够实现这一目标?是否可以运行 工作机会在特定的分支上?

最佳答案

在最近的更新中,您现在可以输入 if条件在 job水平。请参阅此处的文档。 https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idif
我测试了这个运行作业的工作流 test每次推送,但只运行 deploy在主分支上。

name: my workflow
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Execute tests
run: exit 0
deploy:
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/master'
steps:
- name: Deploy app
run: exit 0
以下是我的原始答案,如果您更喜欢单独的工作流程,则可以使用替代解决方案。
第一个工作流为除 master 之外的每个分支运行.在此工作流程中,您仅运行测试。
on:
push:
branches:
- '*'
- '!master'
第二个工作流仅运行 master如果测试成功通过,则运行您的测试和部署。
on:
push:
branches:
- master

关于github - 仅使用 GitHub 操作在特定分支上运行作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58139406/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com