| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MIND 2023 #후기
- 백엔드 로드맵
- input
- Docker
- 인스턴스
- 카카오사용자정보가져오기
- ci/cd
- button
- 엔티티 매니저
- GitHub_Actions
- Spring API
- 예외
- html
- 백엔드공부
- 제로베이스
- feignClient
- static
- 엔티티 생명주기
- form
- tag
- 카카오인증토큰받기
- oAuth2
- 어떤 개발자?
- Java
- 백엔드스쿨
- 카카오인가코드받기
- Interface
- spring
- jenkins
- 상속
- Today
- Total
HiDevelop
GitHub-Action 본문
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을 사용하여 프로젝트를 빌드