一、DevOps jenkins自动获取账号下所有仓库,提交代码自动拉取最新提交代码的仓库
- gitee创建私人令牌
- jenkins在系统管理-凭证管理 里面创建远程仓库私人api凭证
- 新建任务-选择自由风格构件项目
- 在对应的远程仓库选择连接凭证
- 选择参数化构建过程,输入构建时需要的参数,根据自己需求填写。
-源码管理选择无,然后选择对应远程仓库的webhook
- jenkins生成webhook密钥
- 在远程仓库新建webhook,密钥填写jenkins生成的密钥
- 编写构建脚本, gitee api接口可通过私人令牌获取数据。调用接口获取最新提交代码的仓库名,通过代码仓库名来拉取对应仓库的最新代码,并部署到服务器。
#!/bin/bash -ilex
#GIT
# ===Jenkins构建后命令===
echo "PARAM_TAG = $PARAM_TAG";
echo "PARAM_REVISION = $PARAM_REVISION";
echo "PR_DOMAIN = $PR_DOMAIN.你的域名.com";
echo "PR_NAME = $PR_NAME";
# [ -z ${PARAM_TAG} ] || git checkout "${PARAM_TAG}"
# [ -z ${PARAM_REVISION} ] || git checkout "${PARAM_REVISION}"
# cat README
# ===说明===
# 参数
# PARAM_TAG:tag名
# PARAM_REVISION:revison编号
# PR_DOMAIN: 二级域名
# PR_NAME: 项目及仓库名称
# PR_SERVER_NAME: 后台及仓库名称
# 初始化git@gitee.com:你的空间地址/*
# cd "$PR_NAME"
# vue run build
#代码管理
# PR_NAME有值为项目管理平台提交的构建任务,否则为第三方远程仓库触发
# 判断PR_NAME是否有值,如果没有就调用gitee接口获取最新提交的仓库名称
if [ "" = "$PR_NAME" ]
then
curl -X GET --header 'Content-Type: application/json;charset=UTF-8' 'https://gitee.com/api/v5/user/subscriptions?access_token=你的TOKEN&sort=last_push&direction=desc&page=1&per_page=1' > info.log
tmp=$(awk -v a= -F "你的空间地址/" '{print $2}' info.log)
echo $tmp
git_path=(${tmp%%'"'*})
PR_NAME=$git_path
rm -rf info.log
fi
echo $PR_NAME
cd /opt/git/test/
if [ ! -d "$PR_NAME" ]
then
git clone https://gitee.com/你的空间地址/"$PR_NAME".git
fi
cd "$PR_NAME"
git pull origin master
cat README.md
- 自动构建记录