깃허브 액션 github actions

753 단어·2 분·원문(.md)

깃허브 액션 #

github actions은 깃허브 저장소를 기반으로 소프트웨어 개발 워크플로우를 자동화할 수 있는 도구다.
간단하게 깃허브에서 제공해주는 CI/CD 도구라고 할 수 있다.

워크 플로우는 GitHub 저장소에서 발생하는 build, test, package, release, deploy등 다양한 이벤트를 기반으로 직접 원하는 워크플로우를 만들 수 있다.

워크 플로우는 Runner라고 불리는 GitHub에서 호스팅하는 Linux, macOS, Windows 환경에서 실행된다.
그리고 이 Runners를 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수도 있다, 그것을 self-hosted runner라고 한다.

여러 사람이 공유한 워크플로우는 깃허브 마켓 플레이스에서 찾을 수 있다.

워크플로우 가격 #

워크 플로우 가격은 저장소마다 최대 20개까지 등록할 수 있다. 그리고 워크플로우 안에 존재하는 Job이라는 단계마다 최대 6시간동안 실행될 수 있고, 초과하면 자동으로 중지된다.
그리고 깃허브 계정 플랜에 따라서 전체 깃 저장소를 통틀어 실행할 수 있는 Job은 개수가 정해져있다.

Job 안에서 GitHub API를 호출한다면 1시간 동안 최대 1,000번까지만 가능하다.
공개 저장소에서는 무료이며, 비공개 저장소는 해당 계정에 부여된 무료 사용량 이후 과금된다.

워크 플로우 문법 #

워크플로우는 .yml 파일로 작성된다.

name: 워크플로우의 이름

on: push # 단일 이벤트 사용

on: [ push, pull_request ] # 이벤트 목록으로 사용

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
# 동작 유형 또는 구성과 함께 다중 이벤트 사용

on:
  release:
    types: [ published, created, edited ]
# types 키워드를 활용하면 워크플로우를 실행하는 활동의 범위를 좁힐 수 있다.
# ex) published, unpublished, created, edited, deleted or prereleased.

on:
  push:
    branches:
      - main
      - '적용할 브랜치'
      - 'releases/**'
    tags:
      - v1
      - v1.*
# 적용할 브랜치를 설정할 수 있고, 태그에도 적용할 수 있다.

on:
  push:
    branches-ignore:
      - '제외할 브랜치'
      - 'releases/**-alpha'
    tags-ignore:
      - v1.*
# 제외할 브랜치를 설정할 수 있고, 태그에도 적용할 수 있다.

on:
  push:
    branches:
      - 'releases/**'
      - '!releases/**-alpha'
# 제외할 브랜치를 !로 설정할 수도 있다.

on:
  schedule:
    - cron: '30 5,17 * * *'
#시간으로 설정할 수도 있다.
DevOps/gitaction.md