Gitlab Releases如何仅打包指定文件/文件夹而非整个仓库?
如何在GitLab Releases中仅发布指定文件/目录
GitLab UI直接发布默认会打包整个仓库,但可以通过CI/CD实现自定义发布内容,只包含你需要的flow-definitions/bin/目录,具体操作如下:
用GitLab CI/CD自定义发布包
步骤1:配置.gitlab-ci.yml
在仓库根目录新建或修改这个配置文件,定义发布任务:
release-custom-package: stage: release image: alpine:latest before_script: - apk add --no-cache zip curl # 安装GitLab Release CLI(简化发布操作) - curl -L "https://gitlab.com/api/v4/projects/gitlab-org%2Frelease-cli/packages/generic/release-cli/latest/release-cli-linux-amd64" -o /usr/local/bin/release-cli - chmod +x /usr/local/bin/release-cli script: # 仅打包目标目录 - zip -r bin-flow-defs.zip flow-definitions/bin/ # 创建Release并上传自定义压缩包 - release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG --assets-link "{\"name\":\"bin-flow-defs.zip\",\"url\":\"$CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/raw/bin-flow-defs.zip\"}" only: - tags
步骤2:触发发布流程
- 给仓库打一个新标签(比如
v1.0.1-bin-update),推送到GitLab。 - GitLab会自动启动CI任务,完成打包和发布。
- 去项目的Releases页面查看,就能看到仅包含
bin/目录内容的bin-flow-defs.zip压缩包。
可选调整
- 要生成tar.gz包,把打包命令换成
tar -czf bin-flow-defs.tar.gz flow-definitions/bin/即可。 - 如果想同时保留GitLab默认的全仓库包,不用修改配置,CI会在默认包之外额外添加你的自定义包。
- 确保CI/CD权限正常:项目默认已包含
CI_JOB_TOKEN,足以调用Release API完成操作。
内容的提问来源于stack exchange,提问作者DataWrangler
相关产品推荐
相关产品推荐

