因为项目需要用到发布版本管理,喜欢玩github的应该懂,gitlab中有release管理,有专有的业界规范。
国内局域网对于release的内容比较少,不过看官方文档也足够了,因此笔者针对release功能进行了简单探索。
文章目录
- 需要你提前了解的东西
-
- access token
- project id
- tag
- API介绍
-
- 查看release信息
-
- 查看所有release信息
- 查看指定release信息
- 创建release
- 修改release
- 删除release
- 创建一个外部文件
- 脚本文件
需要你提前了解的东西
首先,目前的版本中,gitlab并没有支持界面操作,基本如果用到这个功能,只能通过它的API进行操作。不过不算复杂,http restful玩的6的应该不需要学习。
access token
翻译过来是准入令牌,说白了,因为你的操作都是restful API,为了安全,需要先在gitlab进行鉴权。
project id
每个gitlab中的项目都有一个唯一识别号,我们称之为project id,project id可以在项目的首页看到:
tag
中文翻译为标签。某些程度上面,tag和release你都可以认为是快照的概念。
release基于tag,因此需要先打标签:
API介绍
如果没有其他操作,生成release就是把某个版本牵出来,里面都是该版本的源码,将会生成4种文件:
zip
, tar.gz
, tar.bz2
和 tar
查看release信息
查看所有release信息
GET /projects/:id/releases
示例:
[app@csybapp3 soft]$ curl --header "PRIVATE-TOKEN: XXXXXXXXXXXXX" http://ip地址/api/v4/projects/工程id/releases
懒得截图了,都是敏感信息。
查看指定release信息
GET /projects/:id/releases/:tag_name
示例:
[app@csybapp3 soft]$ curl --header "PRIVATE-TOKEN: XXXXXXXXXXXXX" http://ip地址/api/v4/projects/工程id/releases/标签id
创建release
POST /projects/:id/releases
示例:
curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: XXXXXXXXXXXXX" --data '{ "name": "'release名称'", "tag_name": "'标签名'", "ref":"'标签名'" ,"description": "'描述信息'" }' --request POST http://ip地址/api/v4/projects/工程id/releases
修改release
PUT /projects/:id/releases/:tag_name
示例:
curl --request PUT --data name="new name" --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "http://localhost:3000/api/v4/projects/24/releases/v0.1"
删除release
DELETE /projects/:id/releases/:tag_name
示例:
curl --request DELETE --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "http://localhost:3000/api/v4/projects/24/releases/v0.1"
创建一个外部文件
效果如下图:
也就是说,如果你想在版本中维护一个编译好的二进制文件,可以通过名叫links
的方式,即外链,文件不会存储到gitlab,你可以放到ftp或者apache上面。
我推荐使用的是这种追加的形式:
curl --request POST --header "PRIVATE-TOKEN: $token" --data name="$release_file_name" --data url="$release_path" "http://$GITLAB_URL/api/v4/projects/$id/releases/$tag_name/assets/links"
脚本文件
看到这里的话,送个福利给你,我自己写的脚本文件,比较简单,但是也很实用,有需要可以拿去,或者自己再加修改:
#!/usr/bin/env bash GITLAB_URL="172.18.20.41"echo -n "0.请输入Gitlab Access Token:"
read token
echo -n "1.请输入项目的id:"
read id
echo -n "2.请输入项目release的名称:"
read name
echo -n "3.请输入即将创建release版本的tag:"
read tag_name
echo -n "4.请输入release的描述:"
read description
echo -n "5.请输入release二进制文件名称:"
read release_file_name
echo -n "6.请输入release二进制文件发布路径:"
read release_path #创建发布版本
curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: $token" --data '{ "name": "'$name'", "tag_name": "'$tag_name'", "ref":"'$tag_name'" ,"description": "'$description'" }' --request POST http://$GITLAB_URL/api/v4/projects/$id/releases#创建二进制文件链接
curl --request POST --header "PRIVATE-TOKEN: $token" --data name="$release_file_name" --data url="$release_path" "http://$GITLAB_URL/api/v4/projects/$id/releases/$tag_name/assets/links"