当前位置: 首页 > news >正文

北京企业建网站公司湖北自适应网站建设报价

北京企业建网站公司,湖北自适应网站建设报价,网站开发项目实训报告,关键词全网搜索指数gitlab runner的安装和基本使用:https://bear-coding.blog.csdn.net/article/details/120591711安装并给项目配置完gitlab runner后再操作后面步骤。实现目标:master分支代码有变更的时候自动构建build。当开发人员在gitlab上给项目打一个tag标签分支的时候自动触发…

gitlab runner的安装和基本使用:https://bear-coding.blog.csdn.net/article/details/120591711

安装并给项目配置完gitlab runner后再操作后面步骤。

实现目标:

  1. master分支代码有变更的时候自动构建build。

  1. 当开发人员在gitlab上给项目打一个tag标签分支的时候自动触发流水线,根据标签名称和分支名称来自动发布;

例如分支名称为"test_3.1.1.1_project1&project2"则发布到测试环境

例如分支名称为"prod_3.1.1.1_project1&project2"则发布到生产环境

在项目根目录下创建以下文件:

创建好之后,提交到gitlab上,就直接可以使用了

.gitlab-ci.yml 流水线文件

stages:- build- test- prod#当master分支变更的时候触发
build:stage: buildscript: sh ./build.shonly:- master  #master主干有变更的发起编译任务tags:- trade_runner  #任务标签,根据此标签匹配gitlab runner的标签。test:stage: testscript: sh ./test.shonly:refs:- tags #创建tag分支且格式为”test_44.55.66.77_project1.project2“的时候发起发布任务variables:- $CI_COMMIT_TAG =~ /^test_[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+_[a-zA-Z0-9&\.]+$/tags:- trade_runnerprod:stage: prodscript: sh ./prod.shonly:refs:- tags #创建tag分支且格式为”prod_44.55.66.77_project1.project2“的时候发起发布任务variables:- $CI_COMMIT_TAG =~ /^prod_[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+_[a-zA-Z0-9&\.]+$/tags:- trade_runnerwhen: manual #设置需要手动触发

build.sh 执行编译项目的脚本文件

#!/bin/shecho "start build task,job_name=$CI_JOB_NAME"#判断流水线任务必须是build
if [ "$CI_JOB_NAME" != "build" ]; thenecho "error job name: $CI_JOB_NAME"exit 1
ficd GitLabTest/
dotnet build $build_args
#获取构建结果
build_result=$?
echo "end build task,$build_result"
exit $build_result

test.sh 执行发布测试环境的脚本

#!/bin/shthetime=`date +%Y%m%d%H%M`
tag_msg=`echo "$CI_COMMIT_TAG" | awk -F '_' '{print $3}' `
echo "start test task,tag=$CI_COMMIT_TAG,job_name=$CI_JOB_NAME,tag_message=$tag_msg,time=$thetime"#判断流水线任务必须是deploy
if [ "$CI_JOB_NAME" != "test" ]; thenecho "error job name: $CI_JOB_NAME"exit 1
fi#要发布的项目列表
programs=(${tag_msg//&/ })for program in ${programs[@]}
do#切换到要发布的项目里,并发布项目cd GitLabTest/$programecho "start publish $program"dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true $build_args -p:DebugSymbols=true -p:DebugType="portable"if [ $? != 0 ]; thenecho "publish $program failed"exit 1fiecho "publish $program success"cd ../../
donebase_pwd=`pwd`
build_path_middle="publish"for program in ${programs[@]}
do#将发布好的文件复制到发布目录下#也可以将文件打包成tar,传输到远程服务器上,或者生成docker镜像,推送到镜像服务器。见后面注释部分echo "start copy $program"#预先创建存放发布文件的目录,并将权限给到gitlab-runner#mkdir /usr/local/publish#chown -R gitlab-runner:gitlab-runner /usr/local/publishmkdir -p /usr/local/$build_path_middle/$program/cp -rf $base_pwd/GitLabTest/$program/bin/Release/net7.0/linux-x64/* /usr/local/$build_path_middle/$program/echo "copy $program success"
done#将文件打包成tar,传输到远程服务器上,
#        rm -f program.tar.gz
#        tar zcf program.tar.gz -C publish --exclude "*.tar.gz" .
#        ssh -p $server_port $server_ip "mkdir -p $deploy_base_pwd/$program/"
#        ssh -p $server_port $server_ip "{ cd $deploy_base_pwd/$program/ && [ -s program.tar.gz ] && mv -f program.tar.gz program_bak.tar.gz; } || true"
#        scp -P $server_port program.tar.gz $server_ip:$deploy_base_pwd/$program/#将文件生成docker镜像,并推送到镜像仓库
#docker build -f /usr/local/$build_path_middle/$program/Dockerfile -t 镜像仓库地址/trade-$program:${thetime} .
#docker push 镜像仓库地址/trade-$program:${thetime} 
#docker rmi 镜像仓库地址/trade-$program:${thetime} 

prod.sh 执行发布到生产环境的脚本,与test.sh基本一至,根据实际需要更改

#!/bin/shthetime=`date +%Y%m%d%H%M`
tag_msg=`echo "$CI_COMMIT_TAG" | awk -F '_' '{print $3}' `
echo "start product task,tag=$CI_COMMIT_TAG,job_name=$CI_JOB_NAME,tag_message=$tag_msg,time=$thetime"#判断流水线任务必须是deploy
if [ "$CI_JOB_NAME" != "prod" ]; thenecho "error job name: $CI_JOB_NAME"exit 1
fi#要发布的项目列表
programs=(${tag_msg//&/ })for program in ${programs[@]}
do#切换到要发布的项目里,并发布项目cd GitLabTest/$programecho "start publish $program"dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true $build_args -p:DebugSymbols=true -p:DebugType="portable"if [ $? != 0 ]; thenecho "publish $program failed"exit 1fiecho "publish $program success"cd ../../
donebase_pwd=`pwd`
build_path_middle="publish"for program in ${programs[@]}
do#将发布好的文件复制到发布目录下#也可以将文件打包成tar,传输到远程服务器上,或者生成docker镜像,推送到镜像服务器。见后面注释部分echo "start copy $program"#预先创建存放发布文件的目录,并将权限给到gitlab-runner#mkdir /usr/local/publish#chown -R gitlab-runner:gitlab-runner /usr/local/publishmkdir -p /usr/local/$build_path_middle/$program/cp -rf $base_pwd/GitLabTest/$program/bin/Release/net7.0/linux-x64/* /usr/local/$build_path_middle/$program/echo "copy $program success"
done#将文件打包成tar,传输到远程服务器上,
#        rm -f program.tar.gz
#        tar zcf program.tar.gz -C publish --exclude "*.tar.gz" .
#        ssh -p $server_port $server_ip "mkdir -p $deploy_base_pwd/$program/"
#        ssh -p $server_port $server_ip "{ cd $deploy_base_pwd/$program/ && [ -s program.tar.gz ] && mv -f program.tar.gz program_bak.tar.gz; } || true"
#        scp -P $server_port program.tar.gz $server_ip:$deploy_base_pwd/$program/#将文件生成docker镜像,并推送到镜像仓库
#docker build -f /usr/local/$build_path_middle/$program/Dockerfile -t 镜像仓库地址/trade-$program:${thetime} .
#docker push 镜像仓库地址/trade-$program:${thetime} 
#docker rmi 镜像仓库地址/trade-$program:${thetime} 

http://www.yayakq.cn/news/620323/

相关文章:

  • 旅游政务网站建设方案app与网站的区别
  • 零食铺网站建设策划书八种营销模式
  • 网站有做货建立网站需要做什么
  • 网站域名做固定资产怎么处理网站建设目的分析
  • 做网站前期创建文件夹网络网站建设价格
  • 邢台市建设局网站vi设计方案
  • 长沙企业网站制作服务报价优秀国外网站
  • 做京挑客的网站有哪些金乡网站建设哪家好
  • 常州网站建设青之峰wordpress angularjs
  • 网站后台数据好的网站开发培训
  • 网站建设规划公司地址淘宝自己网站怎么建设
  • 河北网站建设收益网站建设合伙人
  • 创建平台网站下载软件免费软件的定义
  • 网站运营存在的问题网站对公司的意义
  • 潍坊市城市建设官网站百度wordpress安装
  • 怎么样建设自己网站马克杯网站开发
  • 心理网站开发背景微信小程序案例源码
  • 广州市哪有做网站的大丰哪家专业做网站
  • 网站打开速度太慢wordpress oauth qq
  • v9双语版网站怎么做不同类型网站优势
  • WordPress做的网站源代码百度商城官网首页
  • 怎样将自己做的网站给别人看aspx网站 整站抓取
  • sql2005做网站可以查各种资料的app
  • 山东公路建设集团网站男女做微电影网站
  • 专业网站建设86215网站怎么做来卖东西
  • 网站备案IP与空间成交功能网站
  • php网站虚拟机价格最近最新手机中文大全4
  • 手机网站建设好吗专业网站建设开发
  • 竞价移动网站国外好玩的网站
  • 网站建设工作分解结构词典聊城网站优化技术