feat: 新增 gitlab cicd
This commit is contained in:
81
.gitlab-ci.yml
Normal file
81
.gitlab-ci.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
# 定义全局docker镜像
|
||||
image: git.mesalab.cn:7443/nezha/nz-build-env:1.6
|
||||
# 定义全局变量
|
||||
variables:
|
||||
MINIO_HOST: 'http://192.168.40.48:2020/'
|
||||
MINIO_USER: 'admin'
|
||||
MINIO_PWD: "Nezha@02!"
|
||||
MAVEN_REPO: "/etc/maven/repository/"
|
||||
# mariadb 数据库定义(非必须)
|
||||
MYSQL_DATABASE: "test"
|
||||
# mariadb 密码配置(必须),注意变量名是 MYSQL_ROOT_PASSWORD
|
||||
MYSQL_ROOT_PASSWORD: '111111'
|
||||
# 定义全局依赖的docker服务,即 这条流水线 pipeline 中的任务都用这里的服务
|
||||
services:
|
||||
- mariadb:10.2.14
|
||||
# 开始执行脚本前所需执行脚本
|
||||
before_script:
|
||||
- echo "begin ci"
|
||||
# 脚本执行完后的钩子,执行所需脚本
|
||||
after_script:
|
||||
- echo "end ci"
|
||||
# 该ci pipeline适合的场景,按照定义的顺序执行任务
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
# paths主要是来指定需要被缓存的文件路径,需要特别指出的是这里的 paths 是相对路径,是相对于gitlab中项目目录的路径,也就是说被缓存的文件都是在项目目录之内的
|
||||
# maven setting /usr/share/maven/conf/settings.xml
|
||||
cache:
|
||||
paths:
|
||||
- $MAVEN_REPO
|
||||
|
||||
# 定义的任务
|
||||
build_rpm:
|
||||
stage: build
|
||||
# 所需执行的脚本
|
||||
script:
|
||||
- env | sort
|
||||
- pwd
|
||||
- export FILE_NAME=$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA.tar.gz
|
||||
- mvn clean install -Dmaven.test.skip=true
|
||||
- cd ./target
|
||||
- tar -zcvf $FILE_NAME asw-controller.jar
|
||||
# 将 文件 上传到 minio
|
||||
- mc alias set asw $MINIO_HOST $MINIO_USER $MINIO_PWD
|
||||
- mc cp $FILE_NAME asw/release/asw-controller/$FILE_NAME
|
||||
- cd ../
|
||||
# 在哪个分支上可用
|
||||
only:
|
||||
- /^rel-.*$/i
|
||||
# 指定哪个ci runner跑该工作
|
||||
tags:
|
||||
- dh
|
||||
|
||||
# 定义的任务
|
||||
dev_build:
|
||||
stage: test
|
||||
# 所需执行的脚本
|
||||
script:
|
||||
- env | sort
|
||||
- pwd
|
||||
- export FILE_NAME=$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA.tar.gz
|
||||
- mvn clean install -Dmaven.test.skip=true
|
||||
- cd ./target
|
||||
- "git log -100 --pretty=format:'%ad : %s' > git-log.html"
|
||||
- tar -zcvf $FILE_NAME asw-controller.jar git-log.html
|
||||
- md5sum $FILE_NAME > $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.tar.gz.md5sum.txt
|
||||
# 将 文件 上传到 minio
|
||||
- mc alias set asw $MINIO_HOST $MINIO_USER $MINIO_PWD
|
||||
- mc cp $FILE_NAME asw/ci-cd/asw-controller/$FILE_NAME
|
||||
- mc cp $FILE_NAME asw/ci-cd/asw-controller/$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.tar.gz
|
||||
- mc cp $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.tar.gz.md5sum.txt asw/ci-cd/asw-controller/$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.tar.gz.md5sum.txt
|
||||
- cd ../
|
||||
# 在哪个分支上可用
|
||||
only:
|
||||
- /^dev-.*$/i
|
||||
# 指定不执行的标签
|
||||
except:
|
||||
- schedules
|
||||
# 指定哪个ci runner跑该工作
|
||||
tags:
|
||||
- dh
|
||||
Reference in New Issue
Block a user