CircleCI Orbs를 사용하여 Google App Engine에 배포

CircleCI Orbs란 무엇입니까?



CircleCI 설정 (job 및 command)을 공유 가능한 패키지로 한 것
이하, 공식 문서 발췌

CircleCI Orbs are shareable packages of configuration elements, including jobs, commands, and executors.

그건 그렇고, Orbs는 코코에서 검색 할 수 있습니다.

Orbs를 사용하면 무엇이 좋아질까요?



(떠오르는 곳)
  • 패키지를 활용하여 CI 흐름 구현 속도를 높일 수 있습니다
  • 코드 양을 줄일 수있어 config.yml의 유지 보수 성이 향상됩니다.

    실제로 Orbs를 사용해보기



    이번은 간단하게, Google Cloud Cli Orb 를 이용해 이하의 처리를 실장했다.
    1. GitHub 리포지토리에서 코드 체크 아웃
    2.gcloud CLI의 초기화(GCP의 프로젝트 ID, Compute Zone, Service Key의 설정.※환경 변수의 사전 설정 필요)
    3. Google App Engine에 테스트 앱 배포

    환경 변수 설정



    CircleCI 대상 프로젝트에서 BUILD SETTING -> Enviroment Variables에서 다음 항목 설정
  • GOOGLE_COMPUTE_ZONE
  • GOOGLE_PROJECT_ID
  • GCLOUD_SERVICE_KEY

  • Config.yml 작성



    version 정보의 직후에 이하의 내용을 기재.orbs:
    gcp-cli: circleci/[email protected]

    CLI의 초기화 처리는 이하의 1행만의 추가로 OK!- gcp-cli/initialize
    Config 전체는 다음과 같습니다.

    config.yml
    version: 2.1
    orbs:
      gcp-cli: circleci/[email protected]
    
    jobs:
      build:
        working_directory: ~/repo
        docker:
          - image: google/cloud-sdk:latest
    
        steps:
          - checkout
          - gcp-cli/initialize
          - run:
              name: Deploy to Google App Engine
              command: |
                gcloud --quiet app deploy app.yaml --version=test
    
    

    실행 결과


    소감



    Orbs를 사용하기 전에 GAE에 배포하기 때문에,
    환경 변수 정보를 json 형식으로 출력하고 gcloud auth activate-service-accountgcloud --quiet config set project 에서 프로젝트 ID를 설정했습니다.
    상기의 내용이 - gcp-cli/initialize의 1행으로 할 수 있는 것은 매우 기쁘다.

    향후는 가능한 한 Orbs를 활용하는 것으로, config 파일을 심플하게 유지하면서, CI/CD의 품질・스피드를 높일 수 있을 것 같다.

    기타 참고로 한 사이트

    좋은 웹페이지 즐겨찾기