From da051af99f8bba909af7bfaaaa4f3b35ee1ecd43 Mon Sep 17 00:00:00 2001 From: zhangshuai Date: Thu, 18 Jul 2024 10:31:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20gitlab=20cicd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2538937 --- /dev/null +++ b/.gitlab-ci.yml @@ -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