GitLab Release CLI 도구 (deprecated)
GitLab v19.5요약
이 기능은 GitLab 18.0에서 deprecated되었으며 20.0에서 제거될 예정입니다. 이 변경은 호환성을 깨는 변경입니다. release-cli에서 glab CLI로 마이그레이션하려면 job 구성에 따라 다음 중 하나를 업데이트합니다.
이 기능은 GitLab 18.0에서 deprecated되었으며 20.0에서 제거될 예정입니다. 대신 GitLab CLI를 사용합니다.
이 변경은 호환성을 깨는 변경입니다.
release-cli에서 glab CLI로 마이그레이션#
release-cli에서 glab CLI로 마이그레이션하려면 job 구성에 따라 다음 중 하나를 업데이트합니다.
-
job이
release키워드를 사용한다면cli:latest이미지를 사용하도록 업데이트합니다.release_job: stage: release image: registry.gitlab.com/gitlab-org/cli:latest rules: - if: $CI_COMMIT_TAG script: - echo "Running the release job." release: tag_name: $CI_COMMIT_TAG name: 'Release $CI_COMMIT_TAG' description: 'Release created using the CLI.'자세한 내용은
release를 참고합니다. -
job이
script블록에서release-cli명령을 사용한다면glab release create를 사용하도록 업데이트하고 릴리스 API에 대한 인증을 구성합니다.
CI/CD job 토큰으로 인증#
CI_JOB_TOKEN으로 인증하려면 GLAB_ENABLE_CI_AUTOLOGIN을 true로 설정합니다.
glab CLI는 CI_JOB_TOKEN을 JOB-TOKEN 헤더로 전송하며, 릴리스 API는 이 헤더를 허용합니다.
release_job:
stage: release
image: registry.gitlab.com/gitlab-org/cli:latest
rules:
- if: $CI_COMMIT_TAG
variables:
GLAB_ENABLE_CI_AUTOLOGIN: "true"
script:
- |
glab release create "$CI_COMMIT_TAG" \
--name "Release $CI_COMMIT_TAG" \
--notes "Release created with glab."
액세스 토큰으로 인증#
개인,
프로젝트,
그룹 액세스 토큰으로 인증하려면
GITLAB_TOKEN에 해당 액세스 토큰을 설정합니다.
토큰에는 api 범위가 있어야 합니다.
release_job:
stage: release
image: registry.gitlab.com/gitlab-org/cli:latest
rules:
- if: $CI_COMMIT_TAG
variables:
GITLAB_TOKEN: $RELEASE_ACCESS_TOKEN
script:
- |
glab release create "$CI_COMMIT_TAG" \
--name "Release $CI_COMMIT_TAG" \
--notes "Release created with glab."
GITLAB_TOKEN을 $CI_JOB_TOKEN으로 설정하지 않습니다.
glab CLI는 GITLAB_TOKEN을 PRIVATE-TOKEN 헤더로 전송하지만, 릴리스 API는 JOB-TOKEN 헤더의 job 토큰만 허용합니다.
이 조합은 404 Not Found를 반환합니다.
CI/CD job 토큰으로 인증하려면 GLAB_ENABLE_CI_AUTOLOGIN을 true로 설정합니다.
전체 옵션 목록은
glab release create 명령 참조 문서를 참고합니다.
release-cli로 폴백#
히스토리
release 키워드를 사용하는 CI/CD job은 러너에서 필요한 glab 버전을 사용할 수 없으면
release-cli 사용으로 폴백하는 스크립트를 사용합니다. 이 폴백 로직은
아직 glab CLI로 마이그레이션하지 않은 프로젝트가 계속 동작하도록 보장하는
안전 장치입니다.
이 폴백은 release-cli 제거와 함께 GitLab 20.0에서
제거될 예정입니다.