Gitlab JC/CD 第二篇

2018-04-23 10:45:02 +0800

categories: git lab

just now


# cache 这个参数用于定义全局那些文件将被 cache 到下一个  stages
# 调试开启
before_script:
 - pwd
 - env
 ##
 ## Assuming you created the SSH_KNOWN_HOSTS variable, uncomment the
 ## follo wing two lines.
 ##
 - mkdir -p /root/.ssh/
 - chmod  700 /root/.ssh/
 - echo -e "StrictHostKeyChecking no \nUserKnownHostsFile /dev/null" > ~/.ssh/config
cache:
  key: $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHA
  paths:
    - build/
    - /data/repo
stages:
  - build-jar
  - build-release
  - build-dev
variables:
  DOCKER_DRIVER: overlay2
  MAVEN_OPTS: "-Dmaven.repo.local=/data/repo"
  CI_DEBUG_TRACE: "true"
build-Java:
  image: "registry.cn-hangzhou.aliyuncs.com/emos_prod/centos7-jdk8-maven3-git-1.8:latest"
  stage: build-jar
  script:
    - chmod u+x ./maven-build-all.sh
    - ./maven-build-all.sh
    - ls -a build/
  tags:
    - build_dev

release-jar-release:
  image: "registry.cn-hangzhou.aliyuncs.com/emos_prod/centos7-jdk8-maven3-git-1.8:latest"
  stage: build-release
  script:
    - git clone http://$GITLAB_USER:$GITLAB_PASS@ gitlab-cicd.com/release/build-space.git
    - cd build-space && rm -rf * && cp -r ../build/* .
    - git config --global user.name "root"
    - git config --global user.email "[email protected]"
    - git add --all .
    - git commit -m "Gitlab CI Auto Builder master"
    - git push --force --quiet http://$GITLAB_USER:$GITLAB_PASS gitlab-cicd.com/release/build-space.git master:master
  tags:
    - build_dev
  only:
    - master

release-jar-dev:
  image: "registry.cn-hangzhou.aliyuncs.com/emos_prod/centos7-jdk8-maven3-git-1.8:latest"
  stage: build-dev
  script:
    - git clone http://$GITLAB_USER:$GITLAB_PASS@ gitlab-cicd.com/dev/build-space.git
    - cd build-space && rm -rf * && cp -r ../build/* .
    - git config user.name "root"
    - git config user.email "[email protected]"
    - git add --all .
    - git commit -m "Gitlab CI Auto Builder dev"
    - git push --force --quiet http://$GITLAB_USER:[email protected]/dev/build-space.git dev:dev
  tags:
    - build_dev
  only:
    - dev

* 文件主要是为了给Gitlab中的某个项目绑定一个Job运行这个Job的就是我们在上次讲的在 gitlab runner

* 看一下目录结构

目录结构

* 这个总体 配置很简单都是yaml文件规范, 主要还是项介绍一下里面的cache cache 是做CICD避免不掉的东西,可以用来 将编译好的文件传送到下一个 stage 实现方式大概是 将你要cache的包 打成一个zip包,启动下一个stage 在进行unzip到当初的目录地址。

* 在以上的配置中 GITLAB_USER,GITLAB_PASS

设置运行环境变量

* 设置运行的环境变量

推荐创建全局Cache

* 推荐创建全局Cache 。

转载请注明出处,本文采用 CC4.0 协议授权