Blog

테크

GitHub Actions 소개

#Git#배포#GitHub Actions

2023-03-09

GitHub Actions 소개
GitHub Actions 소개

GitHub Actions 소개

마지막 수정시간
Last updated October 25, 2023
블로그_관련제품
ibalance
카테고리
테크
제품
전체
작성자
생성일
Mar 9, 2023 03:07 AM
생성자
상태
완료
블로그게시
게시
태그
Git
배포
GitHub Actions
마지막 수정자
게시자
jujeong
블로그카테고리
tech
업로드표시날짜
Mar 9, 2023
요약
GitHub Actions 소개
블로그_이벤트
event
GitHub Actions Icon
GitHub Actions Icon

GitHub Actions란?

워크플로우 예시
워크플로우 예시
일반적으로 개발 업무를 마무리하기 위해 순차적으로 수행하는 작업들을 워크플로우(Workflow)라고 합니다.[1] 예를 들어서 테스트, 빌드, 배포 작업을 묶어서 워크플로우라고 부를 수 있습니다.
GitHub Actions란 Github 저장소에서 이러한 소프트웨어 개발 워크플로우를 자동화, 사용자 지정, 실행하는 도구입니다.[2]

사용하면 뭐가 좋나요?

개발 업무를 마무리하기 위해서 개발자는 작업 브랜치를 메인 브랜치에 올린 뒤, 테스트, 빌드, 배포 작업을 일일이 수행합니다. 하지만 이 작업은 반복적이고 시간이 걸리기 때문에 개발 리소스를 잡아먹는 요인이 됩니다. Github Actions를 사용하면 이러한 반복적인 작업들을 자동화할 수 있어서 개발 시간을 절약할 수 있습니다.
또한 여러 개발자가 빌드 및 배포 업무를 수행하는 경우, 배포 버전 관리가 어려운 점이 있습니다. Github Actions로 빌드 및 배포 작업을 일원화하면 배포되는 소프트웨어의 버전을 안정적으로 관리할 수 있습니다.

왜 우리 회사에서는 Github Action를 사용하고 있나요?

💁
부족한 내용을 보충해주세요.
회사의 주력 개발 도구 중 하나가 Github이고, 다른 워크플로우 툴에 비해 사용이 편리하며, 다양한 플러그인을 지원하기 때문에 Github Actions를 사용하는 것이 아닌가 싶습니다.

GitHub Actions, 빠르게 시작하기

GitHub Actions는 저장소에 영향을 주는 어떤 이벤트(push 등)가 발생하면 관련된 스크립트(*.yml)에 설정된 작업(jobs)을 수행합니다.

yml 파일 위치

notion image
<root>/.github/workflows/*.yml
  1. git 저장소에 .github 폴더를 만듭니다.
  1. .github 폴더에 workflow 폴더를 만듭니다.
  1. workflows 폴더에 *.yml 파일들을 추가합니다.

yml 파일 구조

name: ... # 작업 이름 on: ... # 이벤트 발생 조건 jobs: ... # 이벤트 발생 시 수행할 세부 작업들

yml 파일 예시

 

GitHub Actions를 로컬에서 돌려보자, act

act
nektosUpdated Oct 25, 2023
GitHub Actions를 로컬에서 실행할 수 있는 도구입니다. 이 도구를 사용하면 깃허브 저장소에 commit이나 push를 하지 않아도 GitHub Actions의 동작을 로컬에서 테스트해볼 수 있습니다. 그래서 Github Actions 스크립트나 동작 오류 문제를 빠르게 찾아서 해결할 수 있습니다.

설치

# Mac brew install act # Windows # [주의] 설치된 이후 환경 변수에 act.exe를 추가해야 PowerShell 또는 cmd에서 바로 사용할 수 있습니다. winget install nektos.act

실행

# 명령어 구조 act [<event>] [options] # 라이브러리 문제로 인해 Apple silicon Mac에서 amd64로 도커 컨테이너를 # 돌려야 하는 경우 아래와 같은 옵션을 사용합니다. # [주의] 속도가 매우 느립니다 act --container-architecture linux/amd64

secrets 설정

GitHub Actions는 워크플로우 수행에 필요한 보안에 민감한 정보들을 secrets로 관리하는 기능을 제공합니다. act의 경우 명령어 옵션 또는 파일에 저장된 secrets 정보를 사용할 수 있습니다.
# MY_SECRET이라는 secret 값을 somevalue로 지정하여 사용 $ act -s MY_SECRET=somevalue # MY_SECRET이라는 secret 값이 존재하는 지 여부만 활용할 때 사용법 $ act -s MY_SECRET # secret 정보가 저장된 my.secrets라는 파일을 사용. 이 파일은 내부적으로 env 파일과 같은 형식. $ act --secret-file my.secrets

주의사항

  • act는 yml 파일의 runs-on 옵션 중에서 ubuntu만 지원합니다. windowsmacos는 지원하지 않습니다.

참고자료

 

[1] Workflow, TechTarget (link)
[2] Github Actions 이해, Github Docs (link)

jujeong

관련된 이야기

한의사가 직접 개발한 체형분석기 아이밸런스

제품

한의사가 직접 개발한 체형분석기 아이밸런스