GitLab-CI在分支被删除后在动态环境中执行stop-environment脚本。这有效地迫使您将所有拆解逻辑放入.gitlab-ci.yml
而不是.gitlab-ci.yml
只调用的脚本。
有没有人知道这方面的解决方法?我有一个删除部署的shell脚本。此脚本是存储库的一部分,也可以在本地调用(即在CI环境中不是onli)。我希望GitLab-CI在删除dynamic environment时调用此脚本,但是当分支被删除时,它显然不再存在。我也不能将这个脚本放到工件中,因为它是在configure
脚本构建之前生成的并且包含秘密。如果可以在删除分支之前执行拆解脚本,那就太棒了。
以下是.gitlab-ci.yml
deploy_dynamic_staging:
stage: deploy
variables:
SERVICE_NAME: foo-service-$CI_BUILD_REF_SLUG
script:
- ./configure
- make deploy.staging
environment:
name: staging/$CI_BUILD_REF_SLUG
on_stop: stop_dynamic_staging
except:
- master
stop_dynamic_staging:
stage: deploy
variables:
GIT_STRATEGY: none
script:
- make teardown # <- this fails
when: manual
environment:
name: staging/$CI_BUILD_REF_SLUG
action: stop
答案 0 :(得分:0)
可能不太理想,但是您可以在运行脚本之前使用gitlab API对该脚本进行卷曲:
curl \
-X GET https://gitlab.example. com/raw/master/script.sh\
-H 'PRIVATE-TOKEN: ${GITLAB_TOKEN}' > script.sh