Hyperskill - 컴퓨터 CS 및 영어 독해/Introduction to Docker

Running a "hello world" action - GitHub action 기초

코딩크리처 2024. 7. 27. 20:18

hyperskill - Running a "hello world" action 영어 원문

이번 주제에서, 당신의 코드에 대한 GitHub actions 기초 배포 파이프라이프라인을 만드는 것에 대해서 배울 겁니다.


Adding actions to your own repository - 레포에 깃헙 액션 추가하기


시작하기에 앞서, 당신은 새로운 GitHub Repo를 생성해야 합니다.

이 레포지토리에는 hello.txt 라는 이름을 가진 텍스트 파일을 포함해야 합니다.

이 파일 내부에 밑의 내용을 복사 붙여넣기하세요 :

Hello world from github

mkdir .github/workflows 혹은 mkdir -p .github/workflows 명령어를 사용하여

당신의 로컬 레포지토리에 워크플로우 디렉토리를 생성하세요.

워크플로우(파이프라인을 사용하는 설정 파일) 를 생성하기 위해서, YAML 파일을 생성해야 합니다.

워크플로우 파일에 이런 이름을 지어 줍니다 : hello_workflow.yaml.


그리고 나서 hello_workflow.yaml 파일 내부에 밑의 템플릿을 붙여넣기하세요.

name: hello_workflow
on: [push]
jobs:
  print-hello:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Hello world using echo
        run: echo "$(<hello.txt)"
      - name: Hello world using cat
        run: cat hello.txt

이제 github 에 당신의 로컬 repo 를 push 하세요.

workflow 파일은 당신이 코드를 push 할 때 트리거됩니다 :

git add .
git commit -m "Added an initial Github Action"
git push

View logs - 깃허브에서 액션 로그 보기


당신이 생성한 github action 은 이벤트가 실행 된 이후 즉시 시작됩니다.

이 예제의 경우 이벤트는 push 입니다.

워크플로우 현황을 보기 위해서, GitHub 레포에서 Actions 탭을 선택하세요.

All Workflows 밑의 hello_workflow 는 워크플로우의 현재 상태를 표현하는 워크플로우 이름입니다.

노란색 원은 현재 액션이 여전히 구동중이라는 의미입니다.

한 번 액션이 완료된다면, 초록색 원이 나타납니다.


만약 당신이 워크플로우 hello_workflow 의 커밋 이름을 클릭한다면,

더 많은 정보를 볼 수 있습니다 :

print-hello job 을 클릭하여 워크플로우 내부의 job에 대한 더 많은 정보를 볼 수 있습니다.

job 내부에서 서로 다른 단계들을 볼 수 있습니다.

첫 번째로, actions/checkout@v4 단계가 실행됩니다.

이 액션의 역할은 당신의 저장소에서 액션을 실행할 ubuntu-latest 러너를 확인하는 겁니다.

그리고 나서 당신이 정의한 두 개의 커스텀 단계들이 실행되며,

이 두 개의 커스텀 단계는 레포 내부의 텍스트 파일 컨텐츠를 프린팅합니다.


그리고 액션 이름의 삼각형을 클릭하여 액션을 확장할 수 있습니다.

확장하면, 당신이 만든 액션의 출력을 볼 수 있습니다.


The workflow file - 워크플로우 파일


워크플로우 파일은 여러 개의 섹션을 가지고 있으며, 이는 밑에 설명해 놓았습니다 :

name: hello_workflow

name 키워드는 워크플로우의 이름을 정합니다.

당신은 선호하는 대로 알맞는 이름을 할당 할 수 있습니다.


on: [push]

on 키워드는 언제 워크플로우가 실행될지 지정하는 겁니다.

당신의 워크플로우는 repo 에 무언가를 push 한다면 이곳에서 실행된다는 겁니다.


jobs:
  print-hello:

여기에 jobs 키워드 밑에 들여쓰기 하며 당신의 실행하고 싶은 모든 job 들을 나열할 수 있습니다.

이 예제의 워크플로우에서는, print-hello 라고 부르는 하나의 job 만이 있습니다.


    runs-on: ubuntu-latest

runs-on 키워드는 job 이름 밑에 들여쓰기됩니다.

이 키워드는 당신의 워크플로우가 구동될 가상의 환경을 지정합니다.

당신의 워크플로우는 워크플로우 파일 에서 말했던 대로 Ubuntu 의 최신 버전을 구동합니다.


    steps:
      - uses: actions/checkout@v4
      - name: Hello world using echo
        run: echo "$(<hello.txt)"
      - name: Hello world using cat
        run: cat hello.txt

위의 단계들은 당신의 print-hello job 의 단계들입니다.

각각의 단계는 - 접두어가 붙으며,

steps 키워드 밑에 들여쓰기됩니다.

모든 단계들은 순서로 실행됩니다.

name 키워드로 단계의 이름을 지정할 수 있으며,

이러한 name 키워드의 이름은 워크플로우가 한 번 완료 되며 단계로서 이름이 로그(기록) 됩니다.


단계들은 당신이 실행하기 원하는 모든 명령어가 될 수 있습니다. 예를 들어 :

        run: cat hello.txt

이는 명령어 라인 cat hello.txt 를 실행합니다.


당신의 워크플로우가 레포(저장소)에 접근하기 위해서, 실행기(러너)로 당신의 저장소를 확인해야 합니다.

이것이 이러한 단계로 당신의 job 을 실행해야 하는 이유입니다 :

      - uses: actions/checkout@v4

@v4 는 사용되는 checkout 패키지의 버전이 4 라는 것을 의미합니다.

당신은 버전을 지정해 줘야 하는데,

패키지들이 지속적으로 새로운 버전으로 업데이트 되어 에러가 생길 수 있기 때문입니다.

따라서, 당신은 패키지의 한 버전으로 고정해 놓아야 합니다.


Conclusion - 결론


이번 주제에서는, 당신의 저장소에 대한 GitHub actions 를 사용하는 법을 배웠습니다.

이러한 간단한 워크플로우는 미래에 더 복잡한 워크플로우를 다루는 데 도움을 줍니다.



words to remember


이번엔 없음