gpt4 book ai didi

bitbucket - 防止 bitbucket-pipelines.yml 更新时触发 bitbucket 管道

转载 作者:行者123 更新时间:2023-12-04 07:57:05 31 4
gpt4 key购买 nike

我是 bitbuckt 管道的新手。在我的节点项目中,我在管道中添加了 bitbucket-pipelines.yml 我有一个构建容器并将其推送到 ECR 的步骤以及另一个部署步骤。

现在,每次我对 bitbucket-pipelines.yml 进行更改时,它都会构建一个新镜像并将其推送到 ECR 并进行部署。

当我对 bitbucket-pipelines.yml 进行更改时,我不知道要触发什么流水线。我只希望管道在我对我的应用程序进行更改时触发。我设置的项目有误吗?

我的项目结构。

.
├── bitbucket-pipelines.yml
├── Dockerfile
├── index.js
├── node_modules
├── package.json
├── package-lock.json
└── README.md

最佳答案

有几个可能的选择:

1.将 [skip ci] 添加到您的 git 提交消息

每当您单独更改 bitbucket-pipelines.yml 时,请在 Git 提交消息中的某处添加“[skip ci]”(不带引号)。当您推送到 Bitbucket 远程时,这将阻止管道运行。

优点:

  • 简单易行。

缺点:

  • 您必须记住手动编写 [skip ci]" 文本。它很容易忘记,或者新的团队成员可能不知道。

2。使用 Git Hook 自动修改您的 git 提交信息

编写一个 Git Hook 脚本,它会自动将“[skip ci]”文本插入到 Git 提交消息中。该脚本必须执行如下操作:

  1. 本地提交后,检查最新提交到 see which files were changed .使用像 git diff --name-only HEAD~0 HEAD~1
  2. 这样的东西
  3. 如果 bitbucket-pipelines.yml 是唯一更改的文件,请修改提交以将 "[skip ci]" 插入提交消息中。

关于 Git Hooks 的更多信息:

优点:

  • 它是全自动的。无需手动标记您的提交消息。

缺点:

3.让 bitbucket-pipelines.yml 检查文件更改

yml 构建脚本中添加一个部分来检查在最新提交中更改了哪个文件。

yml 中的脚本必须执行如下操作:

  1. 检查最新的提交以查看更改了哪些文件。使用像 git diff --name-only HEAD~0 HEAD~1
  2. 这样的东西
  3. 如果 bitbucket-pipelines.yml 是唯一更改的文件,则使用 exit 0 语句立即中止 CI 构建。

优点:

  • 它是全自动的。无需手动标记您的提交消息。
  • 无需编写 Git Hook 脚本。

缺点:

  • 您的 CI 构建的 Docker 镜像需要 1-5 分钟来加载,然后自行中止。这有点低效,并且会占用您的一些构建时间。
  • 因为 CI 构建仍会运行几分钟,它会用未执行任何操作的构建运行污染您的 CI 构建历史。

4。使用带有“变更集”和“includePaths”的条件步骤

使用 includePaths 定义一个 changesets 以仅当其中一个修改的文件与 includePaths 中的表达式匹配时才执行一个步骤。

pipelines:
default:
- step:
name: build-frontend-artifact
condition:
changesets:
includePaths:
# only xml files directly under resources directory
- "src/main/resources/*.xml"
# any changes in frontend directory
- "src/site/**"
script:
- echo "Building frontend artifact"

来源和更多信息在这里:https://bitbucket.org/blog/conditional-steps-and-improvements-to-logs-in-bitbucket-pipelines

关于bitbucket - 防止 bitbucket-pipelines.yml 更新时触发 bitbucket 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66648730/

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