【GitHub Actions】를 도입해 테스트와 배포를 자동화
7962 단어 GitHubActionsGitHub
뭔가 지적이 있으면 부탁드립니다.
GitHub Actions란?
GitHub Actions는 GitHub에 있는 리포지토리의 변경을 감지하고 자동으로 테스트를 실행하거나 배포를 해 주는 CI/CD 툴입니다. 퍼블릭 리포지토리에서는 무료로 사용할 수 있다.
테스트 코드를 실행할 때, bundle exec rspec
등 수동으로 명령을 실행할 필요가 있었지만, 그 부분을 자동화할 수 있기 때문에 수고가 줄어, 실행을 잊어 버리는 것도 막을 수 있다.
GitHub Actions 도입
파일 만들기
GitHub Actions는 YAML 구문을 사용하여 이벤트, 작업 및 단계를 정의합니다. 이러한 YAML 파일은 코드 리포지토리의 .github/workflows라는 디렉토리에 저장됩니다.
인용 : 샘플 워크플로 만들기
위에서 .github/workflows 디렉토리에 sample.yml 파일을 만듭니다.
먼저 테스트를 자동화하는 설정을 작성합니다.
.github/workflows/sample.ymlname: Tests and Deproy
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.6.7
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.7
env:
RAILA_ENV: test
run: |
sudo apt-get -yqq install libsqlite3-dev
bundle install
bin/rails db:create
bin/rails db:migrate
bin/yarn install
bundle exec rubocop
bundle exec rspec
파일 구성
on:
부분에서 이벤트를 만듭니다. 이번에는 push시와 pull_request시에 GitHub Actionos가 기동합니다. 분기를 지정할 수도 있습니다.
runs-on:
에서 실행 환경의 OS를 지정합니다.
steps:
이하에 액션이나 커멘드등을 기술해 갑니다.
uses: actions/checkout@v2
커뮤니티 액션을 사용하여 대상 코드를 실행 환경으로 가져옵니다.
uses: ruby/setup-ruby@v1
커뮤니티 액션을 사용하여 Ruby 실행 환경을 준비합니다. with:ruby-version
로 버전을 지정할 수 있습니다. 이번에는 2.6.7로 설정되어 있습니다.
run:
아래에서 실행할 명령을 작성합니다. 이번에는 DB에 sqlite를 사용합니다. 테스트 명령에 bundle exec는 붙이지 않아도 좋을지도 모르지만 균일하게 둡니다.
여기까지의 파일로 리포지토리에 코드가 새롭게 push, pull_request 되었을 때, 테스트가 자동으로 움직여 줍니다.
Heroku 배포 자동화
Heroku Deploy 를 참고로 파일에 추가합니다.
.github/workflows/sample.ymlname: Tests and Deproy
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.6.7
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.7
env:
RAILA_ENV: test
run: |
sudo apt-get -yqq install libsqlite3-dev
bundle install
bin/rails db:create
bin/rails db:migrate
bin/yarn install
bundle exec rubocop
bundle exec rspec
heroku-deproy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: akhileshns/[email protected]
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "YOUR APP's NAME"
heroku_email: "YOUR EMAIL"
작업은 동일한 러너에서 실행되는 일련의 단계입니다. 기본적으로 여러 작업이 포함된 워크플로는 해당 작업을 병렬로 실행합니다. 작업을 순서대로 실행하도록 워크플로를 구성할 수도 있습니다. 예를 들어, 워크플로우에 코드 빌드와 테스트라는 두 개의 순차적인 작업이 있고 테스트 작업을 빌드 작업의 상태에 따라 달라질 수 있습니다. 빌드 작업이 실패하면 테스트 작업이 실행되지 않습니다.
인용구 : 직업
이상으로부터, 테스트와 배치가 디폴트에서는 동시에 실행되어 버리기 때문에 needs: build
로 build 가 성공하면 배포하도록(듯이) 하고 있습니다.
HEROKU_API_KEY를 대상 리포지토리의 환경 변수로 설정해야 하므로 그 쪽도 설정해 둡니다.
이것으로 GitHub Actions 설정이 끝납니다.
GitHub에 Push
이제 자동화된 테스트와 자동화된 배포가 도입되었습니다.
참고
Understanding GitHub Actions
GitHub Action Deploy to Heroku
리포지토리에 암호화된 비밀 만들기
퍼펙트 Ruby on Rails 【증보 개정판】
Reference
이 문제에 관하여(【GitHub Actions】를 도입해 테스트와 배포를 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ishigami_masato/items/f38b8d27962ff2248598
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
파일 만들기
GitHub Actions는 YAML 구문을 사용하여 이벤트, 작업 및 단계를 정의합니다. 이러한 YAML 파일은 코드 리포지토리의 .github/workflows라는 디렉토리에 저장됩니다.
인용 : 샘플 워크플로 만들기
위에서 .github/workflows 디렉토리에 sample.yml 파일을 만듭니다.
먼저 테스트를 자동화하는 설정을 작성합니다.
.github/workflows/sample.yml
name: Tests and Deproy
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.6.7
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.7
env:
RAILA_ENV: test
run: |
sudo apt-get -yqq install libsqlite3-dev
bundle install
bin/rails db:create
bin/rails db:migrate
bin/yarn install
bundle exec rubocop
bundle exec rspec
파일 구성
on:
부분에서 이벤트를 만듭니다. 이번에는 push시와 pull_request시에 GitHub Actionos가 기동합니다. 분기를 지정할 수도 있습니다.runs-on:
에서 실행 환경의 OS를 지정합니다.steps:
이하에 액션이나 커멘드등을 기술해 갑니다.uses: actions/checkout@v2
커뮤니티 액션을 사용하여 대상 코드를 실행 환경으로 가져옵니다.uses: ruby/setup-ruby@v1
커뮤니티 액션을 사용하여 Ruby 실행 환경을 준비합니다. with:ruby-version
로 버전을 지정할 수 있습니다. 이번에는 2.6.7로 설정되어 있습니다.run:
아래에서 실행할 명령을 작성합니다. 이번에는 DB에 sqlite를 사용합니다. 테스트 명령에 bundle exec는 붙이지 않아도 좋을지도 모르지만 균일하게 둡니다.여기까지의 파일로 리포지토리에 코드가 새롭게 push, pull_request 되었을 때, 테스트가 자동으로 움직여 줍니다.
Heroku 배포 자동화
Heroku Deploy 를 참고로 파일에 추가합니다.
.github/workflows/sample.yml
name: Tests and Deproy
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.6.7
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.7
env:
RAILA_ENV: test
run: |
sudo apt-get -yqq install libsqlite3-dev
bundle install
bin/rails db:create
bin/rails db:migrate
bin/yarn install
bundle exec rubocop
bundle exec rspec
heroku-deproy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: akhileshns/[email protected]
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "YOUR APP's NAME"
heroku_email: "YOUR EMAIL"
작업은 동일한 러너에서 실행되는 일련의 단계입니다. 기본적으로 여러 작업이 포함된 워크플로는 해당 작업을 병렬로 실행합니다. 작업을 순서대로 실행하도록 워크플로를 구성할 수도 있습니다. 예를 들어, 워크플로우에 코드 빌드와 테스트라는 두 개의 순차적인 작업이 있고 테스트 작업을 빌드 작업의 상태에 따라 달라질 수 있습니다. 빌드 작업이 실패하면 테스트 작업이 실행되지 않습니다.
인용구 : 직업
이상으로부터, 테스트와 배치가 디폴트에서는 동시에 실행되어 버리기 때문에
needs: build
로 build 가 성공하면 배포하도록(듯이) 하고 있습니다.HEROKU_API_KEY를 대상 리포지토리의 환경 변수로 설정해야 하므로 그 쪽도 설정해 둡니다.
이것으로 GitHub Actions 설정이 끝납니다.
GitHub에 Push
이제 자동화된 테스트와 자동화된 배포가 도입되었습니다.
참고
Understanding GitHub Actions
GitHub Action Deploy to Heroku
리포지토리에 암호화된 비밀 만들기
퍼펙트 Ruby on Rails 【증보 개정판】
Reference
이 문제에 관하여(【GitHub Actions】를 도입해 테스트와 배포를 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ishigami_masato/items/f38b8d27962ff2248598
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【GitHub Actions】를 도입해 테스트와 배포를 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ishigami_masato/items/f38b8d27962ff2248598텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)