乐趣区

关于gitlab:使用-Gitlab-快速搭建CICD

另一种系列 - 另一种 CI/CD 形式

过往最常应用的是 jenkins 来进行 CICD, 从最开始接触 CICD,经验过大部分我的项目都是应用的 jenkins。

最近尝试一种新的 CICD 形式————应用 Gitlab CICD

Gitlab CICD

Gitlab Runner

在应用 jenkins 时,咱们是在一台机器上装置 jenkins,而后这台机器帮咱们干一些打包的脏活杂活。
在 Gitlab CICD 这个上下文外面,咱们应用 runner 做这部分的工作。runner 相对值得独自花大篇幅去聊它,但作为入门,咱们须要晓得如何配置并应用根本就能够了。

Gitlab Runner 配置

runner 实质还是一个机器上的服务,首先你须要有一台机器,能够是不同操作系统,甚至是虚拟机都 ok。

装置的具体过程能够参考文档,我是找的一台 linux 机器,大抵过程如下

其中 token 相干信息,能够在你的我的项目信息中找到。

配置实现后,刷新页面,你就能够看到对应 runner 了

Gitlab Runner 应用

在 应用 jenkins 时,咱们组织整个流水线是利用 jenkinsfile,在 gitlab CICD 中有一个相似的文件,叫做.gitlab-ci.yml。

gitlab 实际上有提供一些共享的 runner,你也能够用本人指定的 private 的 runner,指定的规定能够基于 tag。
我的 yml 文件大略如下

stages:
  - maven-test
  - maven-build
  - docker-build
before_script:
  - export IMAGE_TAG=$(echo -en $CI_COMMIT_REF_NAME | tr -c '[:alnum:]_.-' '-')

maven-test:
  image: maven:3.3-jdk-8
  stage: maven-test
  script: "mvn clean pmd:check"
  tags:
    - aliyun

maven-build:
  image: maven:3.3-jdk-8
  stage: maven-build
  script: 'mvn package -B'
  artifacts:
    paths:
      - target/*.jar
  tags:
    - aliyun
  only:
    - beta
    - release
    - tags

docker-build:
  stage: docker-build
  script:
    - docker build -t registry.cn-shanghai.aliyuncs.com/yycao/demo:${IMAGE_TAG} .
    - docker login -u $CI_BUILD_USER -p $CI_BUILD_TOKEN registry.cn-shanghai.aliyuncs.com
    - docker push registry.cn-shanghai.aliyuncs.com/yycao/demo:${IMAGE_TAG}
  only:
    - beta
    - release
    - tags

其中有些波及我的项目平安的字段,也能够在 cicd 内设置

最简略的 java spring 我的项目

应用 spring 最简略的一个我的项目作为例子,简略的进行容器化。
docker file 如下

FROM java:8
VOLUME /tmp
COPY /target/demo-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""ENTRYPOINT ["sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar"]

CI 流水线

最初,提交代码,在预设的对应的分支,就会主动开始打包了。CI 局部实现

退出移动版