여러 프로젝트가있는 단일 저장소가 있습니다 (내 디자인 선택이 아님).
각 프로젝트에는 .gitlab-ci.yml
"버전"파일이 변경 될 때 파이프 라인을 실행 하는 설정이 있습니다. 이것은 사용자가 stage
또는 master
(핫픽스의 경우) 체크인 할 수 있고 빌드가 생성되어 테스트 환경에 배포되기 때문에 좋습니다.
문제는 사용자가에서 병합 master
을 수행 stage
하고 stage
(핫픽스를 가져 오기 위해) 다시 커밋 할 때 입니다. 이로 인해 모든 파이프 라인이 실행됩니다. 실제 내용이 변경되지 않은 프로젝트도 마찬가지입니다.
어떻게 파이프 라인에서 실행을 허용 할 master
및 / 또는 stage
만 할 때 "버전"파일의 내용이 변경? 사용자가 버전 번호를 변경할 때와 같습니다.
다음은 .gitlab-ci.yml
(나는 이들 중 5 개, 모노 리포지토리의 각 프로젝트에 대해 1 개)
#
# BUILD-AND-TEST - initial build
#
my-project-build-and-test:
stage: build-and-test
script:
- cd $MY_PROJECT_DIR
- dotnet restore
- dotnet build
only:
changes:
- "MyProject/.gitlab-ci.VERSION.yml"
# no needs: here because this is the first step
#
# PUBLISH
#
my-project-publish:
stage: publish
script:
- cd $MY_PROJECT_DIR
- dotnet publish --output $MY_PROJECT_OUTPUT_PATH --configuration Release
only:
changes:
- "MyProject/.gitlab-ci.VERSION.yml"
needs:
- my-project-build-and-test
... 등등 ...
나는 여전히 git, GitLab 및 CI / pipelines를 처음 사용합니다. 어떤 도움을 주시면 감사하겠습니다! (저는 모노 리포지토리를 변경하는 것에 대해 거의 말하지 않습니다)
다음 .gitlab-ci.yml
은 파일이 version
변경된 경우에만 test_job을 실행합니다 .
test_job:
script: echo hello world
rules:
- changes:
- version
참조 https://docs.gitlab.com/ee/ci/yaml/#ruleschanges를
작업 만 실행 / 경로 또는 파일 수정 제외를 참조하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다