Gitlab CI/CD 实践七:公共脚本仓库

2022-10-04 17:16:19 浏览数 (2)

前言

之前将流水线脚本所有内容都放到项目里,出现了些问题。

  1. 不好维护,当我发现流水线可以优化,需要做些调整的时候,需要在群里跟所有人说,要怎么怎么改。很麻烦,而且不能保证所有项目都会去更新,导致有的基础设施就需要做兼容,例如我封装的基础镜像。
  2. 新项目需要使用流水线时,可能出现随便找个脚本抄过来用,而那个脚本并不保证是最新的。

Gitlab 官方也意识到这个问题,提供了公共脚本仓库的概念,可在项目里引用其他项目里的脚本。因此我将脚本中的大部分公共内容统一放到了一个公共脚本仓库:gitlab-cicd-template。实际使用时很方便,只需在项目里导入脚本后,传递参数即可。

gitlab-cicd-template 结构

代码语言:javascript复制
├── common
│  ├── build-image
│  │  └── .gitlab-ci.yml
│  ├── deploy-to-k8s
│  │  ├── .gitlab-ci.yml
│  │  └── README.md
│  ├── push-image
│  │  ├── .gitlab-ci.yml
│  │  └── README.md
│  └── sync-deploy-file-to-template
│      ├── .gitlab-ci.yml
│      └── README.md
├── golang
│  ├── build-image
│  │  ├── .gitlab-ci.yml
│  │  └── README.md
│  ├── golangci-lint
│  │  ├── 1.48.0
│  │  │  ├── .gitlab-ci.yml
│  │  │  └── .golangci.yml
│  │  ├── .gitlab-ci.yml
│  │  ├── .golangci.yml
│  │  └── README.md
│  └── unit-test
│      ├── .gitlab-ci.yml
│      └── README.md
├── README.md
└── yarn
    ├── build-image
    │  ├── .gitlab-ci.yml
    │  └── README.md
    └── eslint
        ├── .eslintignore
        ├── .eslintrc
        ├── .gitlab-ci.yml
        └── README.md

如何使用

请看 Gitlab CI/CD 系列 的其他文章。

Post Views: 18

0 人点赞