【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
![](https://s1.md5.ltd/image/c92e0de9aa19ad4dd471158cec468d55.png)
이제 자동화된 테스트와 자동화된 배포가 도입되었습니다.
참고
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
![](https://s1.md5.ltd/image/c92e0de9aa19ad4dd471158cec468d55.png)
이제 자동화된 테스트와 자동화된 배포가 도입되었습니다.
참고
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.)