gpt4 book ai didi

git - 在 circleCli 中获取以前的提交 sha

转载 作者:行者123 更新时间:2023-12-04 03:37:28 25 4
gpt4 key购买 nike

我正在使用 NX 和 CircleCI 将我的项目部署到 firebase。

我创建了一个命令 nx:affected:deploy,它应该只根据之前对 develop 分支的提交部署受影响的构建。

我的 config.yml 来自 CircleCI 看起来像这样

version: 2
jobs:
test_affected:
docker:
- image: circleci/node:12-browsers
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
- v1-dependencies-
- run: npm install
- save_cache:
key: v1-npm-deps-{{ checksum "package-lock.json" }}
paths:
- ./node_modules
- run: npm run affected:dev:stylelint
- run: npm run affected:dev:lint
- run: npm run affected:dev:test
- persist_to_workspace:
root: .
paths:
- .

deploy_affected:
docker:
- image: circleci/node:12
steps:
- checkout
- run: npm i
- run: npm run affected:dev:deploy

workflows:
version: 2
build_and_deploy:
jobs:
- test_affected
- deploy_affected:
requires:
- test_affected
filters:
branches:
only: develop

现在,问题是,当 deploy_affected 运行时,提交已经被推送到 develop 并且没有任何触发(因为 develop 和 affected 寻找相同的提交),所以我需要将目标设置为之前在开发时提交的 SHA。

我知道在 github 操作中我们可以做:

env:
BEFORE_SHA: ${{ github.event.before }}

但我在 CircleCli 配置上找不到简单的方法。

编辑:

我尝试使用:

    environment:
LASTEST_SHA1: echo -e $(git rev-list -n 1 origin/develop^1)
LASTEST_SHA2: << pipeline.git.base_revision >>
LASTEST_SHA3: $(git rev-list -n 1 origin/develop^1)
steps:
- run:
command: |
echo $LASTEST_SHA1
echo $LASTEST_SHA2
echo $LASTEST_SHA3

但结果与我设置的值相同......

echo -e $(git rev-list -n 1 origin/develop^1)
<< pipeline.git.base_revision >>

最佳答案

environment block 不允许引用其他变量,但您可以在命令中使用它们。所以尝试例如

echo "<< pipeline.git.base_revision >>"

如果你有一个命令需要这个值作为环境变量(而不是命令行参数),你可以这样做

MY_ENV="<< pipeline.git.base_revision>>" ./tools/mycommand

或使用 CircleCI 文档中的 BASH_ENV 方法:https://circleci.com/docs/2.0/env-vars/#example-configuration-of-environment-variables

关于git - 在 circleCli 中获取以前的提交 sha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66635300/

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