개요
이 가이드는 Docker 컨테이너에서 Ruby 소프트웨어 프로젝트를 빌드하고 테스트하기 위해 Bitbucket Pipelines를 사용하는 방법을 보여줍니다.
Bitbucket Pipelines는 작성 시점에 계정 당 무료 50 분을 포함합니다. 작업 영역(Workspace)에서 Settings > Plan details를 클릭하여 해당 월의 계정 사용 시간을 확인할 수 있습니다
파이프라인을 직접 설정는 경우, 파이프라인이 빌드를 정의하는데 사용하는 bitbucket-pipelines.yml
파일에서 대부분을 구성하게 됩니다.
Docker로 Ruby 버전 지정
Bitbucket Pipelines는 구성 파일의 시작 부분에 명시한 이미지를 사용하여 Docker 컨테이너에서 모든 빌드를 실행합니다. Docker Hub의 official Ruby Docker images 중 하나를 사용하여 Bitbucket Pipelines와 함께 Node.js를 쉽게 사용할 수 있습니다. 기본 Ruby 이미지를 사용하는 경우 기본적으로 설치된 번들러가 함께 제공되어 종속성을 관리하는 데 도움이 됩니다.
예를 들어, bitbucket-pipelines.yml 파일의 시작 부분에 Ruby 2.4.0를 명시하여 사용할 수 있습니다.
image: ruby:2.4.0 pipelines: default: - step: script: - ruby -v
다른 버전의 Ruby를 사용하려면 Ruby Docker 이미지의 태그를 변경하기 만하면됩니다. 예를 들어 Ruby 2.3.3으로 컨테이너를 시작하는 방법은 다음과 같습니다.
image: ruby:2.3.3
지원되는 모든 Ruby 버전 및 해당 이미지 태그 목록은 https://hub.docker.com/r/library/ruby/ 에서 찾을 수 있습니다 .
online validator로 bitbucket-pipelines.yml 파일의 유효성을 확인할 수 있습니다.
종속성 설치
Gemfile을 사용하는 경우 스크립트 시작 부분에 bundle install
을 실행 하여 모든 종속성을 설치할 수 있습니다.
image: ruby:2.4.0 pipelines: default: - step: script: - bundle install
gem install
명령을 사용하여 명시적으로 종속성을 설치할 수도 있습니다.
image: ruby:2.4.0 pipelines: default: - step: script: - gem install rails
Testing
애플리케이션을 테스트하려면 로컬에서 실행하는 것과 동일한 명령을 bitbucket-pipelines.yml 파일에 추가하면 됩니다. 예를 들어 RSpec을 사용하는 경우 종속성을 설치한 다음에 테스트를 실행합니다.
image: ruby:2.4.0 pipelines: default: - step: script: - bundle install - rspec
Rails 애플리케이션을 빌드하는 경우 테스트를 실행하기 위해 데이터베이스가 필요할 가능성이 높습니다.
예를 들어 파이프라인의 일부로 PostgreSQL 데이터베이스를 구성하는 방법은 다음과 같습니다.
bitbucket-pipelines.yml
image: ruby:2.3.1 pipelines: default: - step: script: # Modify the commands below to build your repository. - export DATABASE_URL=postgresql://test_user:test_user_password@localhost/pipelines - bundle install - rake db:setup - rake db:test:prepare - rspec services: - postgres definitions: services: postgres: image: postgres environment: POSTGRES_DB: pipelines POSTGRES_USER: test_user POSTGRES_PASSWORD: test_user_password
online validator로 bitbucket-pipelines.yml 파일의 유효성을 확인할 수 있습니다.
0 Comments