如何将Automake生成的distribution压缩包上传至GitLab Release?
解决GitLab Release上传Automake生成的Distribution包问题
方法一:手动上传
- 在本地项目目录执行
make dist,生成包含configure脚本的压缩包(例如your-project-v1.0.tar.gz)。 - 进入GitLab项目的Releases页面,点击右上角的New release按钮。
- 填写发布所需的标签名称、版本号、发布描述等信息。
- 滚动到页面底部的Attach binaries区域,直接拖拽生成的压缩包到该区域,或点击Select file选择本地文件完成上传。
- 确认信息无误后点击Create release,用户即可在Release页面下载该distribution包。
方法二:通过GitLab CI/CD自动构建并上传
这种方式可实现打标签时自动生成distribution包并附加到Release,无需手动操作:
- 在项目根目录创建
.gitlab-ci.yml文件,添加以下配置:
release: stage: deploy only: - tags # 仅当推送Git标签时触发该任务 before_script: # 安装构建所需的Autotools依赖(根据项目需求调整) - apt-get update && apt-get install -y autoconf automake make script: - autoreconf -i # 若项目未预生成configure脚本,执行此命令生成(已存在可省略) - ./configure - make dist # 生成distribution压缩包 # 通过GitLab API将包上传到Release附件 - | PROJECT_ID=$(curl --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_PATH" | jq -r '.id') PACKAGE_NAME=$(ls *.tar.gz) curl --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" \ --upload-file "$PACKAGE_NAME" \ "$CI_API_V4_URL/projects/$PROJECT_ID/releases/$CI_COMMIT_TAG/assets/links?name=$PACKAGE_NAME" dependencies: []
- 推送标签到GitLab(例如
git tag v1.0 && git push origin v1.0),CI/CD会自动执行构建并将生成的包附加到对应Release中。
说明:你之前未找到上传入口,是因为Attach binaries区域位于Release创建页面的底部,需要滚动页面才能看到。
内容的提问来源于stack exchange,提问作者OpenSourceOrDie
相关产品推荐
相关产品推荐

