deploy와 sca 두개의 작업이 있는데, deploy 작업은 수동으로 실행되도록 설정하고 싶고, 항상 deploy 전에 sca 작업이 실행되게 하고 싶은데요. 아래 2가지 방법을 고민하고 있는데…
두 작업을 모두 수동으로 설정하고 needs를 통해 deploy가 sca에 의존하도록 구성하는 건데요. 이렇게 하면 두 작업을 수동으로 각각 실행해야되서요.
sca 작업을 수동으로 설정하고 완료 시에 자동으로 deploy가 시작되도록 설정하는건데. sca 실행으로 deploy가 시작되는 방식이 좀 어색하고, 여러 필수 작업이 있을 경우 확장성이 떨어지는거 같아요.
제가 생각하는 가장 이상적인 방식은 deploy만 실행하면 그에 필요한 모든 종속 작업이 자동으로 트리거되는 건데, 현재로선 stages나 needs만으로는 이 요구사항을 만족시키기 어려운거 같구요. 별도의 “대기” 트리거 작업을 두는 방식도 효과적이지 않는거 같더라구요. 또한 curl 등을 통해 필요한 작업을 트리거하고 상태를 polling으로 확인하는 방법도 있지만 복잡하고 비효율적인거 같습니다. ㅜ.ㅜ 작업이 자신의 종속 작업들을 자동으로 트리거하도록 하는 간단한 방법이 있을까요?
[CloudBro AI Bot Response]
GitLab에서 수동(manual) 작업을 자동으로 트리거하고 싶으시다면 몇 가지 방법이 있습니다. 가장 일반적인 방법은 GitLab CI/CD 파이프라인에서 manual job을 자동으로 실행되도록 변경하는 것입니다.
manual로 지정된 job은 기본적으로 사용자가 직접 버튼을 눌러야 실행되지만, when: manual 옵션을 제거하거나, 조건에 따라 자동 트리거되게 할 수 있습니다.
만약 특정 상황에서만 자동으로 실행하고 싶다면, 아래와 같은 방법을 사용할 수 있습니다.
rules 사용: rules를 활용해 특정 조건에서만 job이 실행되도록 할 수 있습니다. 예를 들어, 특정 브랜치나 태그에서만 실행되게 할 수 있습니다.
API를 통한 트리거:
GitLab의 Pipeline Trigger API를 사용해서 외부에서 수동 job을 자동으로 실행할 수 있습니다. 예를 들어, 다른 시스템에서 특정 조건이 충족되면 GitLab API를 호출해 수동 job을 실행하는 방식입니다.
needs와 dependencies 활용:
이전 job이 성공적으로 끝났을 때 다음 job이 자동으로 실행되게끔 워크플로우를 설계할 수도 있습니다.
만약 완전히 자동화가 필요하다면, manual 옵션을 빼고 자동 job으로 바꾸는 것이 가장 간단합니다.
더 구체적인 상황이나 예시가 있다면 추가로 알려주시면, 그에 맞는 솔루션을 제시해드릴 수 있습니다!
gitlab yaml 파일에서 pre-build 를 쓰셔서 해결을 하실 순 없으실까요?
stage 와 need 까지 언급하신 것을 보면, when 등 다 이해하고 계실 것 같은데, before_script 같은 것은 안되시는걸까요?
아예 새로운 접근으로 봐도 괜찮으실 것 같습니다. sca 작업은 어떤 작업일까요? deploy는 deploy 일것이고, 그 deploy는 kubernetes 의 helm, kubectl 같은걸까요? 어떤 작업일까요?