GitLab CI脚本编写

1、GitLab CI脚本基本语法

GitLab CI Runner常用的有两种,一种是Shell的,另一种是Docker的,采用Docker Runner的话需要指定具体镜像,脚本中可以通过tags指定执行该作业的Runner

基本语法案例

image: xxx # 基础镜像,如果使用docker runner但是没有指定镜像时默认采用此镜像

before_script: # 定义在每个作业的脚本之前运行的命令
  - xxx

after_script: # 定义在每个作业的脚本之后运行的命令
  - xxx

stages: # 定义作业可以使用的阶段,如果任何一步作业失败,则不会执行下一步的作业
  - build
  - test
  - deploy

build: # 工作
  stage: build # build阶段
  tags: # 指定运行该脚本的Runner
    - dev-build
  only: # 定义作业将要运行的分支和标签的名称
    - tags # 打tag时才会执行
    - web # 只有在web界面进行操作才会执行
  script: # 由Runner执行的shell脚本
    - build_image

2、使用GitLab CI+jib实现自动打包镜像

pom.xml中jib相关配置

            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>1.6.1</version>
                <configuration>
                    <from>
                        <image>${base_image}</image>
                    </from>
                    <to>
                        <image>${registry_url}/${registry_project}/${project.artifactId}:${image_tag}</image>
                        <auth>
                            <username>${registry_username}</username>
                            <password>${registry_password}</password>
                        </auth>
                    </to>
                    <allowInsecureRegistries>true</allowInsecureRegistries>
                    <container>
                        <jvmFlags>
                            <jvmFlag>-Djava.security.edg=file:/dev/./urandom</jvmFlag>
                        </jvmFlags>
                        <user>app:app</user>
                    </container>
                </configuration>
            </plugin>

.gitlab-ci.yml文件

stages:
  - build

build:
  stage: build
  tags:
    - dev-build
  only:
    - tags
    - web
  script:
    - build_image

.auto_devops: &auto_devops |

  function build_image(){
      mvn compile jib:build \
      -Dbase_image=基础镜像地址 \
      -Dregistry_url=镜像仓库地址 \
      -Dregistry_project=镜像仓库中的项目名 \
      -Dregistry_username=用户名 \
      -Dregistry_password=密码 \
      -Dimage_tag=$CI_COMMIT_REF_NAME 
  }

before_script:
  - *auto_devops

build使用的Runner为Shell Runner,$CI_COMMIT_REF_NAME可以得到在Gitlab打tag时指定的tag,最终实现的效果就是通过在GitLab上打tag使用jib自动打包镜像

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
编写 GitLab CI/CD 配置文件 `.gitlab-ci.yml` 的基本步骤如下: 1. 打开你的项目仓库,进入 `Settings` -> `CI/CD` -> `General pipelines settings`,启用 CI/CD 功能。 2. 在项目仓库中创建 `.gitlab-ci.yml` 文件,并在其中定义各个阶段的作业和所需的步骤。 3. 在 `.gitlab-ci.yml` 文件中,你需要定义以下内容: - `stages`:定义各个阶段的名称和执行顺序。 - `variables`:定义环境变量。 - `before_script`:定义所有作业都需要执行的命令。 - `after_script`:定义作业执行完毕后需要执行的命令。 - `jobs`:定义各个作业的名称、阶段、执行脚本等信息。 4. 编写完 `.gitlab-ci.yml` 文件之后,提交到项目仓库中,GitLab 会自动检测并执行配置文件中定义的作业。 下面是一个简单的 `.gitlab-ci.yml` 文件示例: ```yml stages: - build - test - deploy variables: JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64 before_script: - echo "Setting up environment" - apt-get update -qy && apt-get install -y maven after_script: - echo "Tearing down environment" - rm -rf target/ build: stage: build script: - mvn package test: stage: test script: - mvn test deploy: stage: deploy script: - echo "Deploying to production server" ``` 在这个示例中,我们定义了三个阶段:`build`、`test` 和 `deploy`,每个阶段都有对应的作业。`before_script` 和 `after_script` 分别定义了作业执行前和执行后需要执行的命令。`variables` 中定义了一个环境变量 `JAVA_HOME`。 `build` 作业会执行 `mvn package` 命令,打包应用程序;`test` 作业会执行 `mvn test` 命令,运行测试用例;`deploy` 作业会执行 `echo "Deploying to production server"` 命令,将应用程序部署到生产环境中。 在实际使用中,你需要根据项目的具体情况修改 `.gitlab-ci.yml` 文件,以满足不同的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邋遢的流浪剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值