GitHub Actions
GitHub Actions는 빌드, 테스트, 배포 등과 같은 CI/CD 자동화 플랫폼이다.
동작 방식
하나의 Workflow
안에, 하나 이상의 Job
으로 구성 돼 있다. Job
은 Step
이라고 하는 단위로 또한 나뉠 수 있으며, 각각의 Step
은 항상 선행관계가 존재해, 순차적으로 실행된다. 만약 선행작업이 실패하는 경우 이후의 작업은 실행되지 않는다.
하나의 Workflow
안에, 여러 개의 Job
이 존재할 경우, 별도의 선행관계가 설정 돼 있지 않은 이상, 병렬로 처리된다.
각각의 Job
은 가상머신 위의 독립된 도커 컨테이너로 실행되기 때문에 가상머신의 운영체제를 명시해주어야 한다.
코드
name: remote ssh command
on: [push]
jobs:
build:
name: Build
runs-on: ubuntu-latest # 가상머신의 운영체제 정의
steps:
- name: Executing remote ssh commands using password
uses: appleboy/ssh-action@v1.0.0 # 컨테이너 이미지
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }} # Repository에서 Secrets 설정
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: whoami
위처럼 ssh-action으로 간편하게 구성하고, script
부분에 빌드하는 커맨드로 수정하면 된다.
![github-actions-pricing](/img/github-actions-pricing.png)
또한 웬만큼의 빌드 횟수가 아니고서야 무료로 사용이 가능하며, 배포 구성이 매우 단순하다는 특징이 있다.