2.1.2.3 Travis CI를 이용한 CI/CD

Travis CI를 활용한 지속적 통합 및 배포 프로세스 구축

Travis CI는 개발 워크플로우를 자동화하여 지속적 통합(CI)과 지속적 배포(CD)를 실현하는 강력한 도구입니다. 소스 코드의 변경 사항이 커밋되면 자동으로 빌드 및 테스트가 수행되고, 성공적인 빌드 이후에는 자동으로 프로덕션 환경에 배포할 수 있습니다. 이 과정은 개발 효율성을 높이고, 소프트웨어의 품질을 개선하는 데 기여합니다.

CI/CD 파이프라인 구축 단계

  1. GitHub와 Travis CI 연동:
    • Travis CI를 시작하기 위해 GitHub 저장소와 Travis CI를 연동합니다. Travis CI 웹사이트에서 GitHub 계정으로 로그인한 후, 빌드하려는 프로젝트를 Travis CI에 추가합니다.
  2. .travis.yml 파일 생성 및 구성:
    • 프로젝트의 루트 디렉토리에 .travis.yml 파일을 생성하고, 필요한 빌드 환경, 실행 스크립트 등을 정의합니다. 이 파일은 Travis CI가 프로젝트를 어떻게 빌드하고 테스트할지 결정하는 핵심 구성 파일입니다.
  3. 빌드 스크립트 정의:
    • .travis.yml 파일 내 script 섹션에서 빌드 및 테스트를 위한 명령어를 정의합니다. 예를 들어, Java 프로젝트의 경우 Maven이나 Gradle을 사용한 빌드 명령어를 지정할 수 있습니다.
  4. 배포 설정:
    • Travis CI에서는 Heroku, AWS Elastic Beanstalk, Firebase 등 다양한 배포 대상을 지원합니다. .travis.yml 파일 내 deploy 섹션에서 배포 프로바이더와 필요한 설정을 지정하여 배포 과정을 자동화할 수 있습니다.
  5. 알림 설정:
    • 빌드 결과에 대한 알림을 설정하여, 빌드 성공 또는 실패 시 이메일, Slack 등으로 통지를 받을 수 있습니다. 이는 팀원들이 빌드 상태를 쉽게 모니터링하고 필요한 조치를 취할 수 있도록 합니다.

실제 파이프라인 예시

language: java
jdk:
  - openjdk11

script:
  - ./gradlew build
  - ./gradlew test

deploy:
  provider: heroku
  api_key: $HEROKU_API_KEY
  app: my-awesome-app
  on:
    branch: master

notifications:
  email:
    recipients:
      - your-email@example.com
    on_success: change
    on_failure: always

CI/CD 구축 시 알아두면 좋은 팁

  • 환경 변수 관리: Travis CI에서 제공하는 환경 변수 기능을 활용하여 API 키나 비밀번호와 같은 민감한 정보를 안전하게 관리하세요. Travis CI 웹 인터페이스에서 설정할 수 있습니다.
  • 조건부 배포: on 키워드를 사용하여 특정 브랜치에 대한 커밋이나 태그를 푸시할 때만 배포가 이루어지도록 설정할 수 있습니다. 이를 통해 개발 또는 테스트 브랜치에 대한 빌드는 수행되지만, 실제 배포는 마스터 브랜치에 대해서만 실행되도록 할 수 있습니다.
  • 캐싱 활용: 종속성 다운로드 시간을 줄이기 위해 Travis CI의 캐싱 기능을 활용하세요. 예를 들어, Maven이나 Gradle의 종속성을 캐시하여 빌드 시간을 단축할 수 있습니다.

Travis CI를 사용한 CI/CD 파이프라인 구축은 프로젝트의 지속적인 품질 관리와 신속한 배포를 가능하게 하여, 개발 프로세스를 크게 개선할 수 있습니다.

source: DevOps/2.Continuous_Integration_(CI)/2.1.Jenkins_TravisCI_GitHubActions/2.1.2.TravisCI/2.1.2.3.md