[github action] 핵심 개념

GitHub Action

코드 저장소(repository)로 유명한 GitHub에서 제공하는 CI(Continuous Integration, 지속 통합)와 CD(Continuous Deployment, 지속 배포)를 위한 비교적 최근에 추가된 서비스.


Runner

Gitbub Action Runner 어플리케이션이 설치된 머신으로,동작을 시작하면 yml 상태 파일에 기술 되어 있는 것을 빌드하기 위한 가상의 인스턴스이다.

프로그램이면서 코드이다. (nodejs 처럼)

가상 컴퓨팅 리소스를 사용한다.


Workflows

GitHub Actions에서 가장 상위 개념인 워크플로우(Workflow, 작업 흐름)는 쉽게 말해 자동화 해놓은 작업 과정

.github/workflows 폴더 아래에 위치한 YAML 파일로 설정

Github에게 YAML 파일로 정의한 자동화 동작을 전달하면, Github Actions는 해당 파일을 기반으로 그대로 실행시킨다.


Event

on:

  push:

    branches:
      - main

Workflow를 트리거(실행)하는 특정 활동이나 규칙. 

예를 들어, 누군가가 커밋을 리포지토리에 푸시하거나 풀 요청이 생성 될 때 GitHub에서 활동이 시작될 수 있다.

첫번째는 on 속성을 통해서 해당 워크플로우가 언제 실행되는지를 정의합니다.(트리거)

현재 main 브랜치에서 push가 되었을 때 작동하도록 워크플로우가 구성 되어있다.


Jobs

jobs:
  job1:
    runs-on: ubuntu-latest
    steps:

두번째는 jobs 속성을 통해서 해당 워크플로우가 구체적으로 어떤 일을 해야하는지 명시

Job은 여러 Step으로 구성되고, 단일 가상 환경에서 실행된다. 다른 Job에 의존 관계를 가질 수도 있고, 독립적으로 병렬로 실행될 수도 있다.

GitHub Actions에서 **작업(Job)**이란 독립된 가상 머신(machine) 또는 컨테이너(container)에서 돌아가는 하나의 처리 단위를 의미

필수로 들어가야 하는 runs-on 속성을 통해 해당 리눅스나 윈도우즈와 같은 실행 환경을 지정


Steps

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: npm install
      - run: npm test

Job 안에서 순차적으로 실행되는 프로세스 단위. 

step에서 명령을 내리거나, action을 실행할 수 있다.

정말 단순한 작업이 아닌 이상 하나의 작업은 일반적으로 여러 단계의 명령을 순차적으로 실행하는 경우가 많다.

그래서 GitHub Actions에서는 각 작업(job)이 하나 이상의 단계(step)로 모델링.

작업 단계는 단순한 커맨드(command)나 스크립트(script) 될 수도 있고 다음 섹션에서 자세히 설명할 액션(action)이라고 하는 좀 더 복잡한 명령

run 속성을 사용하며, 액션을 사용할 때는 uses 속성을 사용


Actions

액션은 GitHub Actions에서 빈번하게 필요한 반복 단계를 재사용하기 용이하도록 제공되는 일종의 작업 공유 메커니즘이다.

액션은 하나의 코드 저장소 범위 내에서 여러 워크플로우 간에서 공유를 할 수 있을 뿐만 아니라, 공개 코드 저장소를 통해 액션을 공유하면 GitHub 상의 모든 코드 저장소에서 사용이 가능해집니다.

Action을 구성하기 위해서 레포지토리와 상호작용하는 커스텀 코드를 만들 수도 있다. 사용자가 직접 커스터마이징하거나, 마켓플레이스에 있는 Action을 가져다 사용할 수도 있다. 


 

 

빌드하던 툴 : 테라폼 클라우드 (gui상에서 설정함)

 

 

참고:https://www.daleseo.com/github-actions-basics/

참고:https://velog.io/@ggong/Github-Action%EC%97%90-%EB%8C%80%ED%95%9C-%EC%86%8C%EA%B0%9C%EC%99%80-%EC%82%AC%EC%9A%A9%EB%B2%95

 

 

JUNE .

20'S LIFE IN SYDNEY and BUSAN

    이미지 맵

    DevOps Study/Github action 다른 글

    이전 글

    다음 글