本文是《GitLabCI实践》教程部分内容,点击上面图片报名学习!
这次我们在学习语法时候需要准备一个注册docker执行器类型的runner。可以参考以下命令指定:
gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "http://192.168.1.200:30088/" \
--registration-token "JRzzw2j1Ji6aBjwvkxAv" \
--description "docker-runner" \
--tag-list "newdocker" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
查看所生成的配置文件。
[[runners]]
name = "docker-runner"
url = "http://192.168.1.200:30088/"
token = "xuaLZD7xUVviTsyeJAWh"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.docker]
pull_policy = "if-not-present"
tls_verify = false
image = "alpine:latest"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
默认在注册runner的时候需要填写一个基础的镜像,请记住一点只要使用执行器为docker类型的runner所有的操作运行都会在容器中运行。如果全局指定了images则所有作业使用此image创建容器并在其中运行。全局未指定image,再次查看job中是否有指定,如果有此job按照指定镜像创建容器并运行,没有则使用注册runner时指定的默认镜像。
#image: maven:3.6.3-jdk-8
before_script:
- ls
build:
image: maven:3.6.3-jdk-8
stage: build
tags:
- newdocker
script:
- ls
- sleep 2
- echo "mvn clean "
- sleep 10
deploy:
stage: deploy
tags:
- newdocker
script:
- echo "deploy"
工作期间运行的另一个Docker映像,并link到image关键字定义的Docker映像。这样,您就可以在构建期间访问服务映像.
服务映像可以运行任何应用程序,但是最常见的用例是运行数据库容器,例如mysql 。与每次安装项目时都安装mysql相比,使用现有映像并将其作为附加容器运行更容易,更快捷。
services:
- name: mysql:latest
alias: mysql-1
声明所部署的环境名称和访问地址,后续可以直接在gitlab 环境变量中查看。非常方便。
deploy to production:
stage: deploy
script: git push production HEAD:master
environment:
name: production
url: https://prod.example.com
使用或禁用全局定义的环境变量(variables)或默认值(default)。
使用true、false决定是否使用,默认为true
inherit:
default: false
variables: false
继承其中的一部分变量或默认值使用list
inherit:
default:
- parameter1
- parameter2
variables:
- VARIABLE1
- VARIABLE2
为了实现模板复用,减少重复代码。本次课程开始我们将使用模板库来完成流水线。开始之前还是要把语法学好便于进一步实施。
创建一个git仓库用于存放模板demo/demo-gitlabci-service
,然后创建一个template目录存放所有pipeline的模板,创建一个jobs目录存放job模板。
这样我们可以将一些maven、ant、gradle、npm工具通过一个job模板和不同的构建命令实现。templates的好处是我们在其中定义了模板流水线,这些流水线可以直接让项目使用。当遇到个性化项目的时候就可以在当前项目创建.gitlab-ci.yml文件来引用模板文件,再进一步实现个性化需要。
解决PC端阅读体验