# 定义全局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: - asw # 定义的任务 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 - tar -zcvf $FILE_NAME asw-controller.jar - 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: - asw