Monorepo 实践
文章内容
本文将介绍如何在 Monorepo 场景下修改特定服务时,仅触发当前服务构建任务而避免全量构建,以免产生资源浪费和消耗时长等问题。
配置方法
配置文件示例
.docker-build-pipeline: &docker-build-pipeline # 使用YAML锚点功能,方便配置复用
- services:
- docker #声明后,流水线内可以直接使用docker命令
ifModify:
- packages/${CODING_PIPELINE_KEY}/** 指定仅修改某个目录下文件时,才触发才目录下构建
stages:
- name: set docker tag
script: echo -n "docker-group/$CODING_PIPELINE_KEY:$CODING_COMMIT_SHORT"
exports:
info: IMAGE_TAG
- name: docker build -t $IMAGE_TAG .
script: cd packages/${CODING_PIPELINE_KEY} && docker build
- name: docker login for index.docker.io
script: docker login -u "$DOCKER_USER" -p "$DOCKER_PWD"
# 从一个私有仓库里,导入DOCKER凭证到环境变量
import: https://demo-team.coding.net/p/demo-project/d/demo-private-reop/git/tree/master/envs/hub.docker.com.yml
- name: push image
script: docker push $IMAGE_TAG
master:
push:
package-1: *docker-build-pipeline
package-2: *docker-build-pipeline
问题反馈 >
2023-02-21最近更新
感谢反馈有用
感谢反馈没用
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。