티스토리 뷰
깃허브 액션(GitHub Actions)이란?
-깃허브의 저장소에서 CI/CD와 같은 자동화 프로세스를 설정하고 실행할 수 있게 해주는 자동화 도구입니다. 이를 사용해 개발자들의 개발 워크플로우를 자동화할 수 있으며, 개발진행을 할때 소프트웨어 개발 라이프사이클 동안에 여러 작업을 간소화하도 자동화 할 수 있습니다.
CI/CD란?
- CI (Continuous Integration) (지속적 통합)
-지속적인 통합이라는 뜻으로 코드의 빌드와 테스트를 자동화하는 프로세스입니다.
-CI의 목표는 코드 변경사항에 대한 즉각적인 피드백을 제공하며 버그나 오류를 빠르게 발견하고 해결하는 것입니다. - CD (Continuous Deployment) (지속적 배포)
-지속적 통합의 다음 단계로, 코드 변경사항이 자동으로 프로덕션 환경에 배포하는 과정입니다.
-CI 과정에서 문제가 없었을 시, 코드 변경사항은 자동으로 프로덕션 환경에 배포됩니다.
깃허브 액션 주요 개념
- 워크플로우(Workflow)
-깃허브 액션의 자동화 프로세스를 설명하는 설정파일입니다. 이 파일은 YAML 형식을 사용하며, 깃허브 저장소에서 workflows 디렉토리에 위치하는 파일입니다.
이 파일 안에 다양한 깃허브 액션의 코드들이 들어갈 수 있습니다. - 이벤트(Event)
-워크플로우가 실행되는 트리거조건입니다. 개발자가 직접 설정할 수 있으며, 주로 'push', 'pull_request', 'schedule'등의 이벤트를 정의할 수 있습니다.
해당 이벤트들이 발생하면 설정된 job들이 실행됩니다. - 잡(Job)
-워크플로우 내에서 실행되는 개별 작업입니다. 각 job들은 일반적으로는 병렬로 실행되며 각 다른 작업을 진행합니다. 하지만 필요에 의해서 각 job들끼리 의존관계를 만들어 job들끼리 순차적으로 진행할 수 있게 만들 수도 있습니다.
job은 여러개의 step으로 구성되어 내부에서 순차적으로 진행됩니다. - 스텝(Step)
-job 안에서 작업을 진행하는 하나의 프로세스 단위 이며, 이 스텝은 순차적으로 실행이 되며, 원격 명령을 진행하거나, 환경설정을 하는 등의 작업을 진행할 수 있습니다. - 액션(Action)
-재사용 가능한 작은단위의 코드블록이고, 우리가 아는 함수의 개념과 유사합니다. action은 step들의 조합으로 구성되어 있으며, 사용자가 직접 커스터마이징하거나, 아니면 다른 사람들의 action을 가져와 실행할 수도 있습니다.
step 내부에 uses를 활용해서 액션을 사용할 수 있고, 문법은 다음과 같습니다. - 러너(Runner)
-Github Action Runner 어플리케이션이 설치된 머신으로, 생성한 Workflow가 실행되는 리눅스 인스턴스입니다.
깃허브 액션(action 사용법)
- steps 내부에 uses키워드를 사용해 action을 가져올 수 있습니다.
- uses 다음 다양한 문법을 통해 액션에 추가 정보를 전달 할 수 있습니다.
- 액션은 github 저장소에서 제공하는 액션들을 가져와 활용할 수 있습니다.
깃허브 액션 문법
uses: [username]/[repository]@[version
- username
-Github의 사용자, 조직의 이름을 나타냅니다.
-Github에서 공식적으로 제공되는 액션들은 "action" 조직의 이름을 가지고 있습니다. - repository
-액션 코드가 저장된 GitHub 저장소의 이름을 나타냅니다. - version
-액션의 버전을 나타냅니다.
steps 내부 키워드
- run
-실행되는 워크플로에 명령줄 스크립트 bash를 활용해 직접 실행 할 수 있는 키워드
steps:
- name: Echo Hello World
run: echo "Hello, World!"
- env
-각 step 단계에 환경변수에 값을 설정합니다.
steps:
- name: Print Environment Variable
run: echo "Using variable $MY_VARIABLE"
env:
MY_VARIABLE: "SomeValue"
- uses
-외부 액션을 참조하거나 실행하는 키워드
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- with
-uses와 함께 사용하며, 액션에 추가적으로 필요한 인수나, 입력 값을 제공합니다.
steps:
- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: '14'
- id
-각 step 단계에 고유한 식별자를 할당합니다. 해당 식별자를 통해 각 step 단계를 구별할 수 있습니다.
steps:
- name: Produce Output
id: my_step
run: echo "::set-output name=my_output::Hello"
- name: Use Output
run: echo "Received: ${{ steps.my_step.outputs.my_output }}"
- if
-step에 조건을 걸어 조건이 참일 때만 step을 실행하도록 설정합니다.
steps:
- name: Run on specific branch
run: echo "Running on master branch"
if: github.ref == 'refs/heads/master'
'깃' 카테고리의 다른 글
깃허브 서브모듈 연결 (feat.스프링 다중 application.yml) (0) | 2024.01.31 |
---|---|
깃 브랜치 (0) | 2023.08.24 |
깃허브 저장 과정 (0) | 2023.08.24 |
깃 기본 명령어 (0) | 2023.08.24 |