TOOL/CI
[.gitlab-ci.yml] 오류 무시하고 계속해서 다음 명령어 실행하기(Windows/Linux)
forgiveall
2019. 12. 25. 18:12
GitLab-CI (깃랩씨아이)
꿀Tip - 오류 무시하고 계속해서 다음 명령어 실행하기
1. Windows환경에서 Shell Executor 에러 넘기기 - pass error as Shell Executor on Windows
Windows10에서 GitLab-Runner를 설치하여 사용중.. Shell
Executor를 사용해야 하는 Stage가 필요했다. Windows 환경에 맞는 Script를 작성해야 한다.
; echo $?
docker stop tomcat; echo $?
예시
deploy-app: stage: deploy tags: - your-shell-ci-tag #사전에 만든 Shell Executor 성격의 Tag로 설정 only: - master - develop - /^.*ci-test.*$/ before_script: #환경변수에 특정 Path를 정의 - $ARTIFACT_WAR_DIR="./installer_something_test/data/war" - echo "########## Check Before" #특정 Path의 하위에 있는 파일 목록을 확인한다. - ls $ARTIFACT_WAR_DIR; echo $? - echo "Maybe your before-script complete." script: - echo "It works! Great!" - echo "Bye~"
2. Docker Executor 에러 넘기기 - pass error as Docker Executor on Linux
Windows10에서 GitLab-Runner를 사용하지만, Docker Executor를 사용할 경우, Docker의 대다수는 Linux Container이니까 그에 맞는 Bash스타일의 Script를 작성해야 한다.
|| true
ls -a ./hello/anybody/there || true
예시
build-app: stage: build retry: 2 tags: - your-docker-ci-tag #사전에 만든 Docker Executor 성격의 Tag로 설정 image: centos-jdk:test #사전에 만든 Local상 Image 또는 Docker-Hub에 존재하는 Image로 설정 only: - master - develop - /^.*ci-test.*$/ before_script: #환경변수에 특정 Path를 정의 - export GRADLE_USER_HOME=`pwd`/.gradle #현재 위치(Path) 확인 - pwd - ls -a ./ #특정 Path에 파일목록을 확인하자 존재하든 안하든 통과 - ls -a "$GRADLE_USER_HOME" || true - ls -a /cache || true - ls -a /cache/caches || true script: - mkdir $GRADLE_USER_HOME - echo "It works! Great!" - echo "Bye~"
Reference - 참고
- Accept specific exit code: https://gitlab.com/gitlab-org/gitlab-runner/issues/3013
- Bash ignoring error for a particular command: https://stackoverflow.com/questions/11231937/bash-ignoring-error-for-a-particular-command