Gitlab JC/CD 第二篇

2018/04/23 git lab

just now

  • 上个文章介绍了 如何配置Gitlab 的Runner,这次介绍如何将Runner 利用起来。
  • 创建一个Java项目,配置它的gitlab-ci文件.
  • 下面的这个yaml文件是用来配置从源码到 Jar/Tar的一个过程,在提交到另一个仓库的yaml
  • 还有另一个 yaml是从 源码–>Jar/tar–>镜像
# 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 "root@emos.com"
    - git add --all .
    - git commit -m "Gitlab CI Auto Builder master"
    - git push --force --quiet http://$GITLAB_USER:$GITLAB_PASSgitlab-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 "root@emos.com"
    - git add --all .
    - git commit -m "Gitlab CI Auto Builder dev"
    - git push --force --quiet http://$GITLAB_USER:$GITLAB_PASS@gitlab-cicd.com/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 。

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

Affiliate

Search

    Post Directory