[gitlab] release功能

因为项目需要用到发布版本管理,喜欢玩github的应该懂,gitlab中有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.bz2tar

查看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"
  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
GitLab是一个基于Web的Git仓库管理工具,它提供了一个集成的CI/CD流水线以及构建和部署工具。NPM是一个包管理器,用于在Node.js环境中安装和管理依赖项(包)。 在GitLab中,你可以使用NPM Registry来存储和共享你的Node.js包。这样,其他用户就可以通过NPM命令将你的包安装到他们的应用程序中。 要在GitLab中使用NPM Registry,你需要在项目的.gitlab-ci.yml文件中配置一个job,该job将向NPM Registry发布你的包。你还需要在GitLab中设置一个NPM Registry,以便其他用户可以访问你的包。 以下是一个.gitlab-ci.yml文件的示例,其中包括一个发布到NPM Registry的job: ``` image: node:latest before_script: - npm install -g npm-cli-login stages: - build - release build: stage: build script: - npm install release: stage: release script: - npm-cli-login -u $NPM_USERNAME -p $NPM_PASSWORD -e $NPM_EMAIL -r https://registry.npmjs.org/ - npm publish only: - master ``` 在这个例子中,我们在before_script中安装了npm-cli-login,它是一个npm命令行工具,用于在发布包之前登录到npm registry。在release job中,我们使用npm-cli-login命令来登录到NPM Registry,然后使用npm publish命令将我们的包发布到Registry中。 注意,我们在.gitlab-ci.yml文件中使用了环境变量$NPM_USERNAME、$NPM_PASSWORD和$NPM_EMAIL来存储我们的NPM Registry凭据。在GitLab中,你可以在项目设置中设置这些环境变量。 希望这可以帮助你开始使用GitLab和NPM Registry。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值