如何在GitLab组件中添加额外的before_script命令?
GitLab组件实现before_script中间插入自定义命令的方案
你当前的伪代码没法正确展开数组类型的额外命令,GitLab CI提供了!reference指令来处理这种数组引用的场景,下面是可行的实现:
组件代码
spec: inputs: before_script_additional: type: array default: [] --- docker_compose:deploy: stage: deploy before_script: - echo before # 展开外部传入的额外命令 - !reference [inputs.before_script_additional] - echo after
关键说明
- 定义
before_script_additional为数组类型输入,默认空数组,确保不传入自定义命令时也能正常执行原有流程 - 使用
!reference [inputs.before_script_additional]可以把传入的数组命令逐个展开,精准插入到原有两个命令之间
项目侧使用示例
在引用该组件的项目.gitlab-ci.yml中,这样传入自定义命令:
include: - component: your-namespace/your-component@latest docker_compose:deploy: inputs: before_script_additional: - echo "自定义前置命令1" - apt-get update && apt-get install -y curl
执行时,before_script的执行顺序会是:
- echo before
- echo "自定义前置命令1"
- apt-get update && apt-get install -y curl
- echo after
内容的提问来源于stack exchange,提问作者membersound
相关产品推荐
相关产品推荐

