Gitlab에 전달되는 아티팩트를 쉽게 디버깅하는 방법
Gitlab에 전달되는 아티팩트를 디버그하는 방법
최근에 저는 GitLab 파이프라인 파일로 많은 작업을 해왔으며 이제 평소보다 설정이 조금 더 복잡해졌습니다. 제 경우 중간 단계는 다른 프로젝트에서 템플릿으로 포함되어 있습니다. 첫 번째 단계에서 아티팩트가 마지막 단계에 도달하지 않는 고약한 버그가 있었습니다. 그러나 기본적으로 작동해야 하는 Gitlab의 문서에 따라.
my
gitlab-ci.yml
의 단순화된 버전입니다. StackOverflow의 영감:image: ubuntu:18.04
stages:
- test
- build
- deploy
test:
stage: test
script:
- echo "test result..." >> test_result.txt
artifacts:
paths:
- "test_result.txt"
expire_in: 1 day
# runs in stage build
include:
- project: 'another-project'
ref: 'master'
file:
- '/templates/build.yml' # this creates build_result.txt
# trying to debug if included step can see the artifact from before
included-build:
script:
# This is wrong! Overriding the included template's script section
- cat test_result.txt
# test_result didn't arrive here at all
deploy:
stage: deploy
script:
- cat test_result.txt
- cat build_result.txt
문제
그래서 왜
test_result.txt
첫 번째 단계부터 마지막 단계까지 도달하지 않았는지 디버깅하고 싶었습니다.내 첫 번째 생각은
script
사이의 모든 단계에 cat test_result.txt
를 추가하여 이것을 디버깅할 수 있다는 것입니다. 맞습니까? 아니요!포함된 템플릿도
script
섹션을 도입하기 때문에 script
섹션을 included-build
에 추가하면 포함된 스크립트가 재정의됩니다. 따라서 원래 동작을 잃습니다.🔥 핫 팁, (병합된 YAML 보기)[ https://docs.gitlab.com/ee/ci/pipeline_editor/#view-expanded-configuration ] 탭을 통해 확인하여 언제든지 이를 확인할 수 있습니다. 이렇게 하면 템플릿에서 병합된 모든 것을 볼 수 있고 놀라지 않을 것입니다 :).
해결책
나는 모든 직업이
before_script
를 가질 수 있다는 것을 발견했습니다. 제 경우에는 어떤 단계에서도 사용하지 않았기 때문에 안심하고 사용할 수 있었습니다. 이렇게 하면 이미 포함된 스크립트를 손상시키지 않을 수 있습니다.# trying to debug if included step can see the artifact from before
included-build:
when: on_success
before_script:
# right! Won't change the original behavior of this job
- cat test_result.txt
그래서 나는 이
before_script
섹션을 첫 단계와 마지막 단계 사이의 모든 작업에 추가할 수 있었고 이렇게 하면 버그를 쉽게 찾을 수 있었습니다. 이 작은 팁이 여러분에게도 도움이 되기를 바랍니다.🔥🔥 추가 핫 팁, Gitlab Workflow VS Code Extension을 사용하세요. 온프레미스 서버에서도 작동합니다(공식 gitlab.com 프로젝트뿐만 아니라)!
당신은 할 수 있습니다 ...
그것은 매력처럼 작동하며 GitLab으로 작업할 때 필수품입니다.
Reference
이 문제에 관하여(Gitlab에 전달되는 아티팩트를 쉽게 디버깅하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jozsefdevs/how-to-debug-artifact-passing-on-gitlab-easily-3hd8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)