我已经在GitHub Actions上工作了很长一段时间,我们有一个指定的工作流程。工作流程是用yaml编写的。
我试图为github.ref
设置一些if
条件,并且在运行中跳过yaml的块。这意味着——如果针对X分支提出拉取请求——该代码块应该运行。
像这样的东西:
- name: Branch name check - Running only for DEV branch..
if: ${{contains(github.ref, 'DEV*')}}
uses: mathrix-education/sonar-scanner@master
with:
version: 4.2.0.1873 # required
typescript: false
scan: true
有人能帮我解决这个问题吗?
在构建github工作流时,我们遇到了类似的情况。我们工作的条件是:
经过一些研究,下面是我们得出的结论。我发现Github的操作非常灵活,有很多Gitlab和Bitbucket没有的选项。但这也是缺点,有时会让理解变得更加复杂。
---
name: my-workflow
on:
push:
branches:
- develop
pull_request:
branches:
- develop
- main
types:
- closed
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: checkout repo
uses: actions/checkout@v1
- name: step 1
if: github.ref == 'refs/heads/develop' || github.event.pull_request.base.ref == 'develop'
run: echo "Hello develop"
- name: step 2
if: github.event.pull_request.base.ref == 'master'
run: echo "Hello master"
我建议不要经常在分支上使用if语句。这会导致不同分支的部署不一致。对于某些用例,使用github环境(仅限企业)可能会更好。例如,如果需要为不同的分支设置不同的环境变量或机密。下面是一个简单的示例,其中可以有两个github环境(develop和main),都包含不同的“我的秘密”值。
name: my-workflow
on:
push:
branches:
- develop
- main
jobs:
deploy:
runs-on: ubuntu-latest
name: Do something
steps:
- run: echo "Example using environments corresponding branch names"
environment: ${{ github.ref == 'refs/heads/main' && 'main' || github.ref == 'refs/heads/develop' && 'develop' }}
env:
MY_SECRET: ${{ secrets.MY_SECRET }}
我已经在GitHub操作中设置了一个工作流来运行我的测试并创建测试覆盖的工件。我的YAML文件的精简版本如下所示: 问题是当测试失败时,工件不会被创建。 我从文档中找到了关于的条件,但这也会导致在我的步骤失败时运行此步骤。我不希望发生这种情况,因为在这种情况下没有什么可归档的。 如果上一步已经运行(成功或失败),我如何才能运行此步骤?
我对GitHub Actions比较陌生,我有两个工作——一个是运行我的测试,另一个是将我的项目部署到服务器上。 显然,我希望测试在每个分支上运行,但是部署应该只在某个东西被推送到主控时发生。 我正在努力寻找在特定分支机构工作的方法。我知道只在特定分支上运行整个工作流是可能的,但是这意味着我将有一个“测试”工作流和一个“部署”工作流。 这听起来像是一个解决方案,但它们可以并行运行。在理想情况下,测
问题内容: 当通过Web挂钩发出请求时,我正在使用Jenkins GitHub请求请求构建器插件来运行我的单元测试。对于构建步骤,我需要知道要合并到其中的分支的名称(例如,如果将其合并到master分支中,则需要开发分支)。在Jenkins execute shell中是否可以访问此方法?谢谢, 问题答案: 您的链接有答案: 该插件提供了一些非常有用的环境变量。 ghprbActualCommit
SonarQube有助于突出显示所有SONAR违规行为,并在本地系统上执行时分析每个Pull Application代码更改。 是否有任何选项/设置可以让我自动执行任何拉取请求,以便SonarQube在GIT中进行分析,并发送电子邮件或使用最新的SONAR代码违规情况更新仪表板?我只想在有人提出拉拽请求时自动进行声纳分析。
我有以下GitHub操作的文件(删除了一些代码,以便更容易理解这个问题): 我经历了以下步骤: 在分支上进行一些提交,并推动这些更改 我期望GitHub Actions在第2项之后运行测试和部署阶段作业。但是相反,它只是再次运行,而没有运行。 如上所述,即使在推送到之后,它仍然在分支上运行,而不是在分支上运行。我有点假设这可能是由于一些奇怪的行为与快进合并。但是GitHub显然意识到我推动了,因为
我有一份Jenkins Multi-branch的工作,从GitLab签出并构建代码。直到最近,它还可以正常工作,但现在一些(但不是全部)来自优秀大师的分支无法构建。大师总是建造没有问题。当我从GitLab中的repo或通过git checkout-b本地分支master并推回到GitLab,然后允许多分支作业拾取新分支时,它无法构建它。我从管道插件SCMBinder类得到消息:“无法确定[bra