TOOL/CI 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 - 참고