CircleCI 코드를 확인하고 Heroku에 자동 배포하는 방법
소개
이 기사는 다음을 읽고 있다고 가정합니다.
Github의 마스터 브랜치에 커밋이 이루어지면 CircleCI가 Heroku에 배포를 실행하도록합니다.
본 기사는 CircleCI를 이용해 Heroku와의 CI/CD 파이프라인을 구성하는 방법에 대해서 자신용도 겸해 해설해 갑니다.
기본적으로 공식 문서를 참고로 했으므로, 이쪽도 함께 읽어 보는 것을 추천합니다.
배포 구성
개발 환경
Ruby 2.6.5
Rails 6.0.0
번들러 2.1.4
MySQL 5.6.50
Heroku에 CI/CD 파이프라인 구축
Heroku 앱을 설정했다고 가정하기 때문에 아직은 여기
1) 환경 변수 추가
CircleCI에서 자동으로 프로이징하려면 Heroku 애플리케이션 이름과 Heroku API 키를 환경 변수로 추가합니다. (CircleCI에서 환경 변수 설정은 여기)
이하, 어플리케이션명을 HEROKU_APP_NAME
, Heroku API 키를 HEROKU_API_KEY
라고 하는 변수명으로 취급합니다.
HEROKU_APP_NAME
는 heroku에 배포하는 앱 이름을 할당합니다.HEROKU_API_KEY
는 터미널에서 다음 명령을 실행할 때 값을 할당합니다.
터미널アプリ名 % heroku auth:token
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx
출력 된 모든 것을 복사하고 Circleci에 환경 변수로 설정합니다.
2) git push로 master 브랜치를 자동 배포
다음은 그 코드입니다.
.cricleci/config.ymldeploy:
docker:
- image: buildpack-deps:trusty
executor: heroku/default
steps:
- checkout # push/mergeされたコードのチェック
- run:
name: Heroku への master のデプロイ
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
이 코드를 작성하여 코드를 확인하고 자동 배포를 실행합니다.
3) workflow 설정
.cricleci/config.ymlworkflows:
version: 2.1
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
공식 문서에서는 커스터마이즈도 가능하지만 초보자인 저는 그 영역에 도달하지 않았기 때문에 우선 파이프라인을 짜는 것을 목표로 준비되어 있는 워크플로우를 사용했습니다.
완성 코드
.circleci/config.ymlversion: 2.1
orbs:
ruby: circleci/ruby@0.1.2
heroku: circleci/heroku@1.2.3
jobs:
build:
docker:
- image: circleci/ruby:2.6.5-stretch-node
executor: ruby/default
steps:
- checkout
- run: gem install bundler -v 2.1.4
- run:
name: Which bundler?
command: bundle -v
- ruby/bundle-install
deploy:
docker:
- image: buildpack-deps:trusty
executor: heroku/default
steps:
- checkout
- run:
name: Heroku への master のデプロイ
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
workflows:
version: 2.1
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
이제 Heroku와의 CI/CD 파이프라인을 연결할 수 있었다.
build
아래에 deploy
가 표시됩니다.
이 글은 어디까지나 초급편이기 때문에 RSpec에 의한 테스트의 실행까지는 기술하고 있지 않지만, 그러한 기술도 할 수 있다는 것을 마음에 넣어두면 좋겠습니다.
Reference
이 문제에 관하여(CircleCI 코드를 확인하고 Heroku에 자동 배포하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/curry__30/items/c184a3b279bd312eade6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Ruby 2.6.5
Rails 6.0.0
번들러 2.1.4
MySQL 5.6.50
Heroku에 CI/CD 파이프라인 구축
Heroku 앱을 설정했다고 가정하기 때문에 아직은 여기
1) 환경 변수 추가
CircleCI에서 자동으로 프로이징하려면 Heroku 애플리케이션 이름과 Heroku API 키를 환경 변수로 추가합니다. (CircleCI에서 환경 변수 설정은 여기)
이하, 어플리케이션명을 HEROKU_APP_NAME
, Heroku API 키를 HEROKU_API_KEY
라고 하는 변수명으로 취급합니다.
HEROKU_APP_NAME
는 heroku에 배포하는 앱 이름을 할당합니다.HEROKU_API_KEY
는 터미널에서 다음 명령을 실행할 때 값을 할당합니다.
터미널アプリ名 % heroku auth:token
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx
출력 된 모든 것을 복사하고 Circleci에 환경 변수로 설정합니다.
2) git push로 master 브랜치를 자동 배포
다음은 그 코드입니다.
.cricleci/config.ymldeploy:
docker:
- image: buildpack-deps:trusty
executor: heroku/default
steps:
- checkout # push/mergeされたコードのチェック
- run:
name: Heroku への master のデプロイ
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
이 코드를 작성하여 코드를 확인하고 자동 배포를 실행합니다.
3) workflow 설정
.cricleci/config.ymlworkflows:
version: 2.1
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
공식 문서에서는 커스터마이즈도 가능하지만 초보자인 저는 그 영역에 도달하지 않았기 때문에 우선 파이프라인을 짜는 것을 목표로 준비되어 있는 워크플로우를 사용했습니다.
완성 코드
.circleci/config.ymlversion: 2.1
orbs:
ruby: circleci/ruby@0.1.2
heroku: circleci/heroku@1.2.3
jobs:
build:
docker:
- image: circleci/ruby:2.6.5-stretch-node
executor: ruby/default
steps:
- checkout
- run: gem install bundler -v 2.1.4
- run:
name: Which bundler?
command: bundle -v
- ruby/bundle-install
deploy:
docker:
- image: buildpack-deps:trusty
executor: heroku/default
steps:
- checkout
- run:
name: Heroku への master のデプロイ
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
workflows:
version: 2.1
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
이제 Heroku와의 CI/CD 파이프라인을 연결할 수 있었다.
build
아래에 deploy
가 표시됩니다.
이 글은 어디까지나 초급편이기 때문에 RSpec에 의한 테스트의 실행까지는 기술하고 있지 않지만, 그러한 기술도 할 수 있다는 것을 마음에 넣어두면 좋겠습니다.
Reference
이 문제에 관하여(CircleCI 코드를 확인하고 Heroku에 자동 배포하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/curry__30/items/c184a3b279bd312eade6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
アプリ名 % heroku auth:token
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx
deploy:
docker:
- image: buildpack-deps:trusty
executor: heroku/default
steps:
- checkout # push/mergeされたコードのチェック
- run:
name: Heroku への master のデプロイ
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
workflows:
version: 2.1
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
version: 2.1
orbs:
ruby: circleci/ruby@0.1.2
heroku: circleci/heroku@1.2.3
jobs:
build:
docker:
- image: circleci/ruby:2.6.5-stretch-node
executor: ruby/default
steps:
- checkout
- run: gem install bundler -v 2.1.4
- run:
name: Which bundler?
command: bundle -v
- ruby/bundle-install
deploy:
docker:
- image: buildpack-deps:trusty
executor: heroku/default
steps:
- checkout
- run:
name: Heroku への master のデプロイ
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
workflows:
version: 2.1
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
Reference
이 문제에 관하여(CircleCI 코드를 확인하고 Heroku에 자동 배포하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/curry__30/items/c184a3b279bd312eade6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)