카테고리 없음

GitHub-Action

꽃달린감나무 2024. 3. 28. 18:09
728x90

GitHub_Action

GitHub Actions은 마치 자동차 자동 조립라인처럼 소프트웨어 배포 과정을 자동화하는 도구이다. 소프트웨어를 배포하고 운영하는 과정에서 여러 작업을 수행해서 코드를 테스트하고 배포까지 해줄 수 있다. 어렵게 생각할 필요 없이, 자동차가 만들어지면, 그것을 원하는 고객한테 가기전, 자동차의 테스트를 진행하고 고객의 위치까지 자동으로 배달되어진다고 생각하면 된다.

 

GitHub_Action과 같이 자동으로 배포와 테스트를 해주는 도구들 CI/CD TOOL이라고 부른다. GitHub_Action 친구들로는(CI/CD TOOL 제품들) Jenkins, AWS CodePipeline 등등이 있다.

GitHub_Action의 핵심 개념

Event

-> 코드 변경, 풀 요청, 배포 등 특정 이벤트가 발생하면 GiHub Actions가 해당 이벤트를 감지하여 작동한다. 마치 자동차가 다 조립되었다는 버튼을 누른 것과 같다

WorkFlows

-> 여러 Job을 순서대로 연결하여 하나의 자동화된 흐름을 구성한다. 즉 자동차 테스트 1, 2, 3 과정과 자동차를 배송차량으로 옮기는 단계들이 Job이고 이러한 과정들을 연결한 것이 WorkFlows라고 보면된다.

Jobs

-> WorkFlow안에서 수행되는 개별 작업들로, 자동차 충돌 테스트, 자동차 자동 멈춤 테스트, 자동차를 배송차량으로 싣는 과정 하나하나가 하나의 Job들이 된다.

Steps

-> Job을 구성하는 단계들로, 자동차 충돌을 테스트할 때, 자동차에 시동을 걸고, 자동차에 속력을 몇까지 올리는 단계들 생각하면 된다.

Actions

-> Job안에서 사용되는 라이브러리이다. 자동차를 충돌 테스트할 때, 이미 만들어진 자동차 테스트 과정을 사용한다고 생각하면 된다.

Runners

-> Job을 실행시켜주는 머신이다. 자동차를 테스트할 수 있는 환경이다

.github/workflows/workflow.yml

-> Workflow를 정의하는 YAML 파일이다. 이 파일에서 Workflow의 구성, Job 목록, 각 Job의 설정 등을 지정한다. 저장위치는 제목경로를 따르면 된다. 설정하는 방법은 아래에 코드 주석을 통해 확인할 수 있다.

 

name: CI/CD # 깃허브 액션 이름 설정 
on:
 push:
    branches: [ main ] # 이벤트를 설정 main 브랜치에 push가 됬을 때, 이벤트 작동
jobs:
 build:
    runs-on: ubuntu-latest # 가장 최신버전의 우분투 환경에서 실행 ( 실행환결 설정)
    steps:
      - uses: actions/checkout@v3 #GitHub_Actiondp checkout 라이브러리의 3번째 버전을 사용!
      
      - uses: actions/setup-java@v3 # #GitHub_Actiondp set-java 라이브러리의 3번째 버전을 사용!
        with:
          distribution: 'corretto' #amzon jdk 에서~~
          java-version: '17' # JDK 17버전을 사용하겠습니다.
          
      - name: Grant execute permission for gradlew
        run: chmod +x gradlew //gradlew 명령어 권한 주기~!
      
      - name: Build with Gradle
        run: ./gradlew clean build // gradle 이전 버전을 지우고 새롭게 gradle을 사용하여 프로젝트를 빌드

 

728x90