以go程序为例,build.sh编译输出物料为_output
目录,然后将其打包为软件名称-分支名称-日期.tar
,然后通过api来发布
官方文档参考: https://docs.gitlab.com/ee/user/packages/generic_packages/index.html#publish-a-generic-package-by-using-
stages:
- build-and-uploads
build_job:
stage: build-and-uploads
script:
- bash build.sh aarch64
- bash build.sh x86_64
- mv _output installer-apiserver-$CI_COMMIT_REF_NAME-$(date +%Y%m%d)
- tar -cf installer-apiserver-$CI_COMMIT_REF_NAME-$(date +%Y%m%d).tar installer-apiserver-$CI_COMMIT_REF_NAME-$(date +%Y%m%d)/
- |
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file installer-apiserver-$CI_COMMIT_REF_NAME-$(date +%Y%m%d).tar "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/installer-apiserver-output/$CI_COMMIT_REF_NAME/installer-apiserver-$CI_COMMIT_REF_NAME-$(date +%Y%m%d).tar"