들어가는 말

gitHub Actions 는 항해99에서 CI/CD 파이프라인을 구성했을 때 사용했었다.
하지만 내가 한게 아니라서 직접 CI/CD를 해봐야겠다는 다짐을 했고
gitHub Actions 부터 시작하게 되었다
그 과정에 내가 알게 된 내용을 정리하였다.

 

 

Git Actions 란?

GitHub Actions는 코드 저장소로 유명한 GitHub에서 제공하는 CI/CD 즉, 프로젝트를 빌드, 테스트, 패키지, 릴리스 또는 배포하기 위해 설정할 수있는 사용자 지정 자동화 프로세스이며, 비교적 최근에 추가된 서비스입니다. 당연히 GitHub에서 코드를 관리하고 있는 소프트웨어 프로젝트에서 사용할 수 있으며 개인은 누구나 GitHub에서 코드 저장소를 무료로 만들 수 있기 있으며, 추가적인 ci/cd툴을 사용하지 않고 깃허브 하나로 버전관리부터 테스트 배포까지 가능해  다른 CI/CD 서비스 대비 진입장벽이 낮은 편입니다. 

 

위 그림을 보면 gitHub에서는 Runner(컴퓨터)를 빌려줍니다. 이 Runner는 windows가 될 수도 있고 Ubuntu는 물론 MacOS도 될 수 있다. 

내가 Push한 Code를 Runner에서 구동합니다. 이 때 부가적으로 필요한 데이터가 있다면 Data를 Runner에 입력할 수도 있습니다.

Code가 Runner에서 Runner에서 동작하면서 많은 자동화된 처리를 할 수 있게됩니다. 예를 들면 테스트를 자동화 하거나, 
테스트가 성공했을 때 서버로 자동으로 deploy를 하는 등등을 할 수 있게 가상의 컴퓨터(Runner)를 빌려주는 서비스가 바로 이 GitHub의 Actions 입니다.

 

 

용어 정리

Actions는 크게 4가지의 개념이 있다.

출처 : https://velog.io/@adam2/Github%EC%97%90-Action%EC%9D%B4%EB%9D%BC%EB%8A%94-%ED%83%AD%EC%9D%B4-%EC%83%9D%EA%B2%BC%EB%8B%A4..-github-Action%EC%9D%B4%EB%9E%80-3gk336pk8q

 

Workflow

GitHub Actions에서 가장 상위 개념이며, 프로젝트를 빌드, 테스트, 패키지, 릴리스 또는 배포하기 위한 전체적인 프로세스입니다. 즉, 자동화해놓은 작업 과정이라고 볼 수 있습니다.  워크플로우는 여러 개의 Job으로 구성되며 on에 의해 실행됩니다  코드 저장소 내에서 .github/workflows 폴더 아래에 위치한 YAML 파일로 설정하며, 하나의 코드 저장소에는 여러 개의 워크플로우, 즉 여러 개의 YAML 파일을 생성할 수 있습니다.

 

Job

Job은 가상의머신(Runner) 에서 돌아가는 하나의 처리 단위를 의미합니다.  여러개의 job을 선언할 수 있고 다른 Job에 의존 관계를 가질 수도 있으며, 독립적으로 병렬로 실행됩니다.

 

Step


Step은 순차적으로 명령어를 수행합니다. 크게 Uses와 Run으로 작업 단위가 나뉘는데, Uses는 이미 다른 사람들이 정의한 명령어를 가져와 실행하는 것이고, Run은 npm install나 mkdir example과 같이 가상환경 내에서 실행할 수 있는 스크립트를 말합니다.

 

Event


Workflow를 트리거(실행)하는 조건을 설정합니다. 예를 들어 해당 레포지토리에 Code가 push 됐을때만, 또는 pull request했을 때, 또는 master branch에 변경사항이 있었을 때 등으로 조건으로 활동이 시작된다. 스케쥴링하는 방법 또한 지원합니다.

 

 

 

사용법

create repositoy

gitHub에 연습할 repositoy를 생성합니다.

 

 

local에  clone 하기

gitBash 및 터미널에서 아래 명령어로 clone해준다. 기본 C:\Users\사용자명 에 clone 되지만 저는 경로를 옮겨 문서에 clone 했습니다.

$ git clone "{repository 주소}"

 

 

.txt 파일 생성 후 작성

메모장을 만들어 hello word 라는 글을 작성해 저장합니다.

 

 

 

Actions 탭에서 .yml 파일 생성

다시 repository에 돌아와 Actions라는 탭에 set up a workflow yourself를 클릭해준다.

 

 

 

제거

기본적으로 setting이 되어 있지만 아래 빨간줄로 되어 있는 부분을 제거하고 아래 명령어를 입력한다.

      - name: print
        run: cat hello.txt

 

삭제

 

추가

 

 

Pull 받기

다시 repository에 가보면 .github/workflows 가 생긴걸 확인할 수 있습니다. 

 

gitBash에 아래 명령어로 Pull를 받아줍니다.

git pull

 

Push

아래 명령어를 차례로 입력해 push 합니다.

git add hello.txt
git commit -m "Actions Test"
git push -u origin +main

 

 

Actions 탭에 가서 확인하기

Actions 탭에 보면 우리가 위에 commit 메세지로 써주었던  Actions Test(커밋메세지)  를 볼 수 있습니다. 클릭!

 

bulid를 클릭

 

 

.yml에 jop name을 print로 해주었는데 그 작업을 펼쳐보면 hello word 라는 메모장에 적은 내용을 볼 수 있습니다. 

 

이건 정말 간단한 방법 입니다.  그 외에도 context 라는 작업도 있고 git  Scecrets를 이용한 key -value를 활용한 데이터도 추가할 수 있습니다.  그 방법은 추가로 계속 정리해서 업로드할 예정입니다.

 

[git] GitHub Actions 사용법 [1] - 개념과 기본 사용법    - 현재
[git] GitHub Actions 사용법 [2] - codeDeploy, S3를 이용한 CI / CD 파이프라인 구축해  - 보러가기

 

 

 

참고한 자료

 

 

Github Action에 대한 소개와 사용법

Github Action은 github에서 공식적으로 제공하는 CI/CD 툴, 다시 말해 개발의 work flow를 자동화할 수 있게 도와주는 툴이다. CI는 Continuous Integration(지속적 통합), CD는 Continuous Delivery(지속적 전

velog.io

 

 

Github에 Action이라는 탭이 생겼다.. (github Action이란?)

새로운 탭 깃허브를 사용하다 어느순간... 내 레포에 새로운 탭이 생긴 것을 여러분은 인지하셨나요? image.png > 자꾸 자기를 클릭해달라고 팝업도 뜨던데... > 구글에 검색해보니 CI/CD관련된 기능

velog.io

 

복사했습니다!