[Day 16] Linter 管理 - 中央集权

想法来源

在过去,我们团队中的人使用的CI/CD 设定档都是在每个专案中各自写一份,而当有需求要调整linter版本时,每个都人要去把专案内的CI/CD 设定档再调整一次,为了帮大家省去这个步骤,我想了一套更新linter 版本又不需要召唤大家去改设定档的流程。

需要的东西有

  • your docker private or public registry
  • 告知同仁绑定哪个image

下载你要的linter版本

example for golangci-lint v1.41.1-alpine version

docker pull golangci/golangci-lint:v1.41.1-alpine
docker tag golangci/golangci-lint:v1.41.1-alpine ${your_image_registry}/golangci-lint:v1.41.1-alpine
docker tag golangci/golangci-lint:v1.41.1-alpine ${your_image_registry}/golangci-lint:latest
docker push ${your_image_registry}/golangci-lint:v1.41.1-alpine
docker push ${your_image_registry}/golangci-lint:latest

${your_image_registry}/golangci-lint:v1.41.1-alpine 为记录版本用
${your_image_registry}/golangci-lint:latest 为让大家使用

调整CI/CD 设定档

example for Drone

原本

- name: golangci-lint
  image: golangci/golangci-lint:v1.41.1-alpine
  commands:
    - golangci-lint run

调整使image固定为 ${your_image_registry}/golangci-lint:latest

- name: golangci-lint
  image: ${your_image_registry}/golangci-lint:latest
  commands:
    - golangci-lint run

这样就大功告成拉~

当有需求要更新时只要操作

pull 你想要的版本

docker pull golangci/golangci-lint:${version}

把linter 重新上tag

docker tag golangci/golangci-lint:${version} ${your_image_registry}/golangci-lint:${version}
docker tag golangci/golangci-lint:${version} ${your_image_registry}/golangci-lint:latest

把linter image 推到你的image registry

docker push ${your_image_registry}/golangci-lint:${version}
docker push ${your_image_registry}/golangci-lint:latest

以後linter有需求要更新时就可以不用让大家都改CI/CD Configuration了~是不是很棒呢!


<<:  食谱搜寻系统_新增资料excel档

>>:  Android Studio初学笔记-Day9-BMI计算器

[Day6] 'undefined' vs 'not defined'

undefined 与 not defined 虽然在字面上的意思,都是未定义、还未定义的意思,但两...

爬取instagram留言 - Selenium

这边我是打API爬的,所以先写了序列化: class IgCommentsSerializer(se...

[Day 28] 关於 InAppBrowser

InAppBrowser 说在最前面的,以目前的 iOS / Android 生态来看,所谓的 In...

[Day 22] 谈 test double 的五种类型

昨天我们讲了针对 removeTag() 的单元测试 不过,如果我们考虑到针对 updateUser...

Day 26. F2E-完善选择帐户

今天这篇也是被遗忘的xD 赶快把他补起来哈哈 #接上真实资料 在 Day 08. F2E-选择帐号...