summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: ef5bdf9f35197ccf0ca28215574691184e27ed0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 定义全局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.jar
    - mvn clean install -Dmaven.test.skip=true
    - cd ./target
    # 将 文件 上传到 minio
    - mc alias set asw $MINIO_HOST $MINIO_USER $MINIO_PWD
    - mc cp asw-runner-jar-with-dependencies.jar asw/release/asw-runner/$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.jar
    - mvn clean install -Dmaven.test.skip=true
    - cd ./target
    - md5sum asw-runner-jar-with-dependencies.jar > $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.jar.md5sum.txt
    # 将 文件 上传到 minio
    - mc alias set asw $MINIO_HOST $MINIO_USER $MINIO_PWD
    - mc cp asw-runner-jar-with-dependencies.jar asw/ci-cd/asw-runner/$FILE_NAME
    - mc cp asw-runner-jar-with-dependencies.jar asw/ci-cd/asw-runner/$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.jar
    - mc cp $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.jar.md5sum.txt asw/ci-cd/asw-runner/$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-latest.jar.md5sum.txt
    - cd ../
  # 在哪个分支上可用
  only:
    - /^dev-.*$/i
  # 指定不执行的标签
  except:
    - schedules
  # 指定哪个ci runner跑该工作
  tags:
    - asw