더 이상 사용되지 않는 키워드
일부 CI/CD 키워드는 더 이상 사용되지 않으며 사용이 권장되지 않습니다. 이 키워드들은 하위 호환성을 보장하기 위해 여전히 사용할 수 있지만, 향후 주요 마일스톤에서 제거가 예약될 수 있습니다. image, services, cache, before_script, after_script를 전역으로 정의하는 것은 더 이상 사용되지 않습니다.
일부 CI/CD 키워드는 더 이상 사용되지 않으며 사용이 권장되지 않습니다.
이 키워드들은 하위 호환성을 보장하기 위해 여전히 사용할 수 있지만, 향후 주요 마일스톤에서 제거가 예약될 수 있습니다.
전역으로 정의된 image, services, cache, before_script, after_script#
image, services, cache, before_script, after_script를 전역으로 정의하는 것은 더 이상 사용되지 않습니다.
대신 default를 사용합니다.
예를 들어:
default:
image: ruby:3.0
services:
- docker:dind
cache:
paths: [vendor/]
before_script:
- bundle config set path vendor/bundle
- bundle install
after_script:
- rm -rf tmp/
only / except#
only와 except는 더 이상 사용되지 않습니다. 파이프라인에 작업을 추가하는 시기를 제어하려면 대신 rules를 사용합니다.
only와 except를 사용하여 파이프라인에 작업을 추가하는 시기를 제어할 수 있습니다.
only를 사용하여 작업이 실행되는 시기를 정의합니다.except를 사용하여 작업이 실행되지 않는 시기를 정의합니다.
only:refs / except:refs#
only:refs와 except:refs는 더 이상 사용되지 않습니다. refs, 정규 표현식 또는 변수를 사용하여
파이프라인에 작업을 추가하는 시기를 제어하려면 대신 rules:if를 사용합니다.
only:refs와 except:refs 키워드를 사용하여 브랜치 이름이나 파이프라인 유형에 따라 파이프라인에 작업을 추가하는 시기를 제어할 수 있습니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
지원되는 값: 다음을 포함하는 배열:
-
브랜치 이름, 예:
main또는my-feature-branch. -
브랜치 이름과 일치하는 정규 표현식, 예:
/^feature-.*/. -
다음 키워드:
값 설명 apipipelines API에 의해 트리거된 파이프라인. branches파이프라인의 Git 참조가 브랜치인 경우. chatGitLab ChatOps 명령을 사용하여 생성된 파이프라인. externalGitLab 이외의 CI 서비스를 사용하는 경우. external_pull_requestsGitHub에서 외부 풀 리퀘스트가 생성되거나 업데이트된 경우(외부 풀 리퀘스트를 위한 파이프라인 참조). merge_requests머지 리퀘스트가 생성되거나 업데이트될 때 생성된 파이프라인. 머지 리퀘스트 파이프라인, 병합된 결과 파이프라인, 머지 트레인을 활성화합니다. pipelinesAPI와 CI_JOB_TOKEN을 사용하여 또는trigger키워드에 의해 생성된 멀티 프로젝트 파이프라인.pushes브랜치와 태그를 포함하여 git push이벤트로 트리거된 파이프라인.schedules예약된 파이프라인. tags파이프라인의 Git 참조가 태그인 경우. triggers트리거 토큰을 사용하여 생성된 파이프라인. web프로젝트의 빌드 > 파이프라인 섹션에서 GitLab UI의 새 파이프라인 선택으로 생성된 파이프라인.
only:refs 및 except:refs 예시:
job1:
script: echo
only:
- main
- /^issue-.*$/
- merge_requests
job2:
script: echo
except:
- main
- /^stable-branch.*$/
- schedules
추가 세부 정보:
-
예약된 파이프라인은 특정 브랜치에서 실행되므로
only: branches로 구성된 작업은 예약된 파이프라인에서도 실행됩니다.only: branches가 있는 작업이 예약된 파이프라인에서 실행되지 않도록 하려면except: schedules를 추가합니다. -
다른 키워드 없이 사용된
only또는except는only: refs또는except: refs와 동일합니다. 예를 들어, 다음 두 작업 구성은 동일한 동작을 합니다:job1: script: echo only: - branches job2: script: echo only: refs: - branches -
작업이
only,except또는rules를 사용하지 않으면only는 기본적으로branches와tags로 설정됩니다.예를 들어,
job1과job2는 동일합니다:job1: script: echo "test" job2: script: echo "test" only: - branches - tags
only:variables / except:variables#
only:variables와 except:variables는 더 이상 사용되지 않습니다. refs, 정규 표현식 또는 변수를
사용하여 파이프라인에 작업을 추가하는 시기를 제어하려면 대신 rules:if를 사용합니다.
CI/CD 변수의 상태에 따라 파이프라인에 작업을 추가하는 시기를 제어하기 위해 only:variables 또는 except:variables 키워드를 사용할 수 있습니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
지원되는 값:
- CI/CD 변수 표현식 배열.
only:variables 예시:
deploy:
script: cap staging deploy
only:
variables:
- $RELEASE == "staging"
- $STAGING
only:changes / except:changes#
only:changes와 except:changes는 더 이상 사용되지 않습니다. 변경된 파일을 사용하여
파이프라인에 작업을 추가하는 시기를 제어하려면 대신 rules:changes를 사용합니다.
Git 푸시 이벤트가 파일을 수정할 때 작업을 실행하려면 only와 함께 changes 키워드를 사용하고,
작업을 건너뛰려면 except와 함께 사용합니다.
다음 refs가 있는 파이프라인에서 changes를 사용합니다:
branchesexternal_pull_requestsmerge_requests
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
지원되는 값: 다음을 포함하는 배열:
- 파일 경로.
- 다음에 대한 와일드카드 경로:
- 단일 디렉토리, 예:
path/to/directory/*. - 디렉토리와 모든 하위 디렉토리, 예:
path/to/directory/**/*.
- 단일 디렉토리, 예:
- 같은 확장자 또는 여러 확장자를 가진 모든 파일에 대한 와일드카드 glob 경로, 예:
*.md또는path/to/directory/*.{rb,py,sh}. - 루트 디렉토리 또는 모든 디렉토리의 파일에 대한 와일드카드 경로(큰따옴표로 감쌈).
예:
"*.json"또는"**/*.json".
only:changes 예시:
docker build:
script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
only:
refs:
- branches
changes:
- Dockerfile
- docker/scripts/*
- dockerfiles/**/*
- more_scripts/*.{rb,py,sh}
- "**/*.json"
추가 세부 정보:
- 일치하는 파일 중 하나라도 변경되면
changes는true로 확인됩니다(OR연산). - Glob 패턴은 flags
File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB와 함께 Ruby의File.fnmatch로 해석됩니다. branches,external_pull_requests또는merge_requests이외의 refs를 사용하면changes는 주어진 파일이 새 것인지 오래된 것인지 결정할 수 없어 항상true를 반환합니다.- 다른 refs와 함께
only: changes를 사용하면 작업은 변경 사항을 무시하고 항상 실행됩니다. - 다른 refs와 함께
except: changes를 사용하면 작업은 변경 사항을 무시하고 절대 실행되지 않습니다.
관련 주제:
only:kubernetes / except:kubernetes#
only:kubernetes와 except:kubernetes는 더 이상 사용되지 않습니다. 프로젝트에서 Kubernetes 서비스가 활성화된 경우
파이프라인에 작업을 추가할지 제어하려면 대신 CI_KUBERNETES_ACTIVE 사전 정의된
CI/CD 변수와 함께 rules:if를 사용합니다.
only:kubernetes 또는 except:kubernetes를 사용하여 프로젝트에서 Kubernetes 서비스가 활성화된 경우 파이프라인에 작업을 추가할지 제어합니다.
키워드 유형: 작업 특정. 작업의 일부로만 사용할 수 있습니다.
지원되는 값:
kubernetes전략은active키워드만 허용합니다.
only:kubernetes 예시:
deploy:
only:
kubernetes: active
이 예시에서 deploy 작업은 프로젝트에서 Kubernetes 서비스가 활성화된 경우에만 실행됩니다.
GitLab Pages의 publish 키워드 및 pages 작업 이름#
GitLab Pages 배포 작업의 작업 수준 publish 키워드와 pages 작업 이름은 더 이상 사용되지 않습니다.
Pages 배포를 제어하려면 대신 pages와 pages.publish 키워드를 사용합니다.
environment:kubernetes:namespace 및 environment:kubernetes:flux_resource_path#
environment:kubernetes:namespace와 environment:kubernetes:flux_resource_path는
kubernetes 아래에 직접 사용될 때 더 이상 사용되지 않습니다. 대시보드 설정을 구성하려면
environment:kubernetes:dashboard:namespace와 environment:kubernetes:dashboard:flux_resource_path를
대신 사용합니다. 자세한 내용은 environment:kubernetes를 참조하세요.
environment:kubernetes:namespace와 environment:kubernetes:flux_resource_path를 사용하여
Kubernetes 대시보드 설정을 구성할 수 있지만, kubernetes 섹션 아래에 직접 사용하는 것은 더 이상 사용되지 않습니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
environment:kubernetes:namespace 및 environment:kubernetes:flux_resource_path 예시:
deploy:
environment:
name: production
kubernetes:
agent: path/to/agent/project:agent-name
namespace: my-namespace
flux_resource_path: helm.toolkit.fluxcd.io/v2/namespaces/flux-system/helmreleases/helm-release
environment:kubernetes:dashboard:namespace 및 environment:kubernetes:dashboard:flux_resource_path 예시:
deploy:
environment:
name: production
kubernetes:
agent: path/to/agent/project:agent-name
dashboard:
namespace: my-namespace
flux_resource_path: helm.toolkit.fluxcd.io/v2/namespaces/flux-system/helmreleases/helm-release
