前言
之前将流水线脚本所有内容都放到项目里,出现了些问题。
- 不好维护,当我发现流水线可以优化,需要做些调整的时候,需要在群里跟所有人说,要怎么怎么改。很麻烦,而且不能保证所有项目都会去更新,导致有的基础设施就需要做兼容,例如我封装的基础镜像。
- 新项目需要使用流水线时,可能出现随便找个脚本抄过来用,而那个脚本并不保证是最新的。
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