GitLab의 조건부 빌드
master
분기를 푸시하면 생성 작업이 트리거됩니다.그러나 Jekyll은 Ruby 기반이며 몇 가지 Gem 종속성이 필요합니다. 나는 또한 몇 가지 플러그인을 추가했습니다. 이러한 이유로 Docker image with all required dependencies 을 생성했습니다. 정기적으로 Bundler를 통해
Gemfile.lock
의 버전을 업데이트합니다. 그런 다음 Docker 이미지를 다시 빌드해야 합니다.따라서 두 가지 작업이 필요합니다.
첫 번째로 트리거 조건은
Gemfile.lock
, Dockerfile
및 .gitlab-ci.yml
파일이 변경되었는지 여부입니다.문제는 비용과 시간이 많이 소요되는 작업이므로 조건이 충족되는 경우에만 빌드를 실행하는 방법입니다. GitLab의 빌드 파일 구성은 이에 대한 솔루션을 제공합니다. 작업에서 조건이 충족되는 경우에만 실행되도록
only
절을 구성할 수 있습니다. 조건은 다음과 같을 수 있습니다.마지막 옵션은 우리 문제에 대한 답입니다. 파일 집합을 구성할 수 있으며 그 중 하나라도 변경된 경우 빌드가 실행되어야 합니다. 그렇지 않으면 아무것도 하지 마십시오.
다음 구조로 변환됩니다.
stages:
- image # 1
- deploy # 1
build: # 2
stage: image # 2
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script: # Build the Docker image
only:
refs:
- master # 4
changes:
- Gemfile.lock # 5
- Dockerfile # 5
- .gitlab-ci.yml # 5
pages: # 3
stage: deploy # 3
image:
name: registry.gitlab.com/nfrankel/nfrankel.gitlab.io:latest
script: # Generate the site
only:
refs:
- master
build
단계에서 image
작업을 정의합니다. 작업이 Docker 이미지를 생성합니다(Kaniko를 통해)pages
단계에서 deploy
작업을 정의합니다. 이 작업은 Jekyll을 통해 사이트를 생성합니다master
분기만 빌드이 시점에서 각 변경 사항은 빌드를 트리거합니다. 이미지 빌드 작업은 사이트 생성 전에 실행되지만 GitLab은 이미지가 변경되지 않은 경우 전자를 건너뜁니다.
더 나아가려면:
2022년 5월 8일 A Java Geek에 원래 게시됨
Reference
이 문제에 관하여(GitLab의 조건부 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nfrankel/conditional-build-on-gitlab-4k23텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)