如何设置Bitbucket Pipelines仅手动触发、不随提交推送自动运行
方案1:改用custom类型流水线(最推荐)
Bitbucket Pipelines的custom配置项专门用于定义仅手动触发的流水线,不会响应任何代码推送、PR合并等自动事件,你可以直接修改原有配置如下:
pipelines: custom: # 替换原来的branches配置块 手动构建APK: # 可自定义流水线显示名称,后台手动触发时会展示 - variables: # 不需要手动传参可删除该块 - name: BUILD_VERSION default: 1.0.0 - step: name: Build apk size: 2x script: - JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" - docker build -t app-release:${BUILD_VERSION:-1.0.0} . services: - docker definitions: services: docker: memory: 7128
配置后,流水线只会在进入对应仓库的「流水线」页面,手动选择该custom流水线运行时才会执行,完全不受代码提交推送影响。
方案2:保留分支绑定,添加触发条件
如果你需要限定只有new_ui_apk分支可以手动运行该流水线,不想对所有分支开放手动触发,可以在原有分支流水线的step上添加触发规则+执行条件:
pipelines: branches: new_ui_apk: - step: name: Build apk size: 2x trigger: manual # 该步骤仅手动触发 condition: condition: '$BITBUCKET_PIPELINE_TRIGGER == ''MANUAL''' # 仅当触发源是手动操作时才执行 script: - JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" - docker build -t app-release:1.0.0 . services: - docker definitions: services: docker: memory: 7128
该配置下,即使有人推送代码到new_ui_apk分支,流水线只会创建待执行的任务,不会自动运行,需要人工确认触发才会执行。
方案3:添加提交信息强制校验规则
如果团队暂时不想修改现有流水线配置,可以在仓库的预接收钩子(pre-receive hook)中添加校验规则,所有推送到new_ui_apk分支的提交信息必须包含[skip ci]标识,否则直接拦截推送,从源头避免遗漏标识的情况。
内容的提问来源于stack exchange,提问作者Ramses Kouam
相关产品推荐
相关产品推荐

