카테고리 없음
[임시] 시험공부 github action
염몽이
2023. 4. 23. 23:42
action.yml 파일 설명
name
: 액션의 이름을 정의합니다.
name: 'Custom GitHub Action'
description
: 액션의 설명을 정의합니다.
description: 'A GitHub Action that takes an input and returns the square of the number'
inputs
: 액션의 입력 변수를 정의합니다. 여기서는 num
이라는 입력 변수를 사용합니다.
inputs:
num:
description: 'Enter a number'
required: true
default: "1"
outputs
: 액션의 출력 변수를 정의합니다. 여기서는 num_squared
라는 출력 변수를 사용합니다.
outputs:
num_squared:
description: 'Square of the input'
value: ${{ steps.get-square.outputs.num_squared }}
runs
: 액션 실행 방법을 정의합니다. 여기서는 composite
방식을 사용합니다.
runs:
using: 'composite'
steps
: 액션을 구성하는 단계를 정의합니다. 여기서는 Python을 설치, 의존성을 설치, 입력 변수를 쉘로 전달, 제곱 값을 계산하는 단계로 구성되어 있습니다.
steps:
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
위 단계에서 actions/setup-python@v4
를 사용하여 Python 3.10 버전을 설치합니다.
- name: Install Dependencies
run: pip install -r requirements.txt
shell: bash
위 단계에서 requirements.txt
파일에 명시된 Python 패키지들을 설치합니다.
- name: Pass Inputs to Shell
run: |
echo "INPUT_NUM=${{ inputs.num }}" >> $GITHUB_ENV
shell: bash
위 단계에서 inputs.num
값을 GITHUB_ENV
파일에 추가하여, 다음 단계에서 해당 값을 사용할 수 있도록 합니다.
- name: Fetch the numbers square
id: get-square
run: python src/get_num_square.py
shell: bash
위 단계에서 get_num_square.py
스크립트를 실행하여 제곱 값을 계산하고, 해당 값을 num_squared
출력 변수에 저장합니다.
이 3개의 파일은 사용자 정의 GitHub Action을 구현하는 데 사용되며, 저장소에 푸시 이벤트가 발생할 때마다 이 워크플로우가 실행됩니다. 각 파일의 동작과 입력 및 출력 값에 대해 자세히 설명하겠습니다. 여기에서는 파일 간에 어떻게 값이 주고받아지는지에 초점을 맞추겠습니다.
.github/workflows/main.yml
파일:
- 이 파일은 워크플로우를 정의합니다. 푸시 이벤트가 발생하면 워크플로우가 시작됩니다.
jobs
섹션에서get-num-square
작업을 정의합니다.steps
섹션에서는 워크플로우에 포함된 작업 단계를 정의합니다.- 사용자 정의 액션을 실행합니다. 이 작업에서 입력 값
num
을11
로 설정합니다. 이 값은with
절에서num
변수에 설정되어action.yml
파일의 입력으로 전달됩니다.
- 사용자 정의 액션을 실행합니다. 이 작업에서 입력 값
action.yml
파일:
- 이 파일은 사용자 정의 GitHub Action의 메타데이터를 정의합니다. 입력 및 출력 변수와 실행 방법을 포함합니다.
- 입력 변수
num
을 정의하고 필수로 지정하며 기본값을 1로 설정합니다. 여기에서는.github/workflows/main.yml
에서 전달된11
값을 사용합니다.- 입력 변수
num
을 쉘 환경 변수INPUT_NUM
으로 설정하여 다음 단계에서 사용할 수 있도록 합니다. 이렇게 하면get_num_square.py
에서INPUT_NUM
환경 변수를 사용하여 입력 값을 읽을 수 있습니다.
- 입력 변수
get_num_square.py
파일:
- 이 Python 스크립트는
INPUT_NUM
환경 변수를 사용하여 입력된 숫자의 제곱을 계산합니다. os.environ.get("INPUT_NUM")
를 사용하여INPUT_NUM
환경 변수 값을 가져옵니다. 여기에서는11
이라는 값이 됩니다.- 제곱 값을 계산한 후,
print(f"::set-output name=num_squared::{num ** 2}")
를 사용하여 제곱 값을num_squared
라는 출력 변수에 설정합니다. 이렇게 하면 액션 단계의 출력 값으로 사용할 수 있습니다.
- 워크플로우 출력:
- 워크플로우에서 사용자 정의 액션을 실행한 후에는, 출력 변수
num_squared
에 제곱 값이 저장됩니다. .github/workflows/main.yml
파일에서 최종 단계인 "Print the square"에서echo "${{ steps.get_square.outputs.num_squared }}"
를 실행하면, 이전 단계에서 설정된num_squared
출력 값을 출력합니다. 여기서는121
이 출력됩니다.