GitHub Actions - CI 구축 (Java + Gradle)

gzip·2023년 5월 29일
0

GitHub 찍먹

목록 보기
3/4
post-thumbnail

Gradle Build Action을 사용해서 CI 구축하기

사용한 Action들


1. Gradle 프로젝트 생성

우선 간단하게 gradle 프로젝트를 생성하고 GitHub에 올려준다.

  • build.gradle.kts
plugins {  
	id("java")  
}  
  
group = "org.example"  
version = "1.0-SNAPSHOT"  
  
repositories {  
	mavenCentral()  
}  
  
dependencies {  
	testImplementation(platform("org.junit:junit-bom:5.9.1"))  
	testImplementation("org.junit.jupiter:junit-jupiter")  
}  
  
tasks.test {  
	useJUnitPlatform()  
}
  • Main.java
public class Main {  
	public static void main(String[] args) {  
		System.out.println("Hello world!");  
	}  
}

2. Workflow 생성

GitHub 리파지토리에 들어가서 상단의 Actions 탭에 들어간다.

Java with Gradle를 선택한다.

name: Gradle Build # 적절히 수정

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

permissions:
  contents: read

# `build`라는 job은 3개의 step으로 이루어져 있다.
jobs:
  build:

	# Workflow가 실행되는 vm의 OS 지정
    runs-on: ubuntu-latest

    steps:
    # 1. vm에서 리파지토리를 내려받음
    - uses: actions/checkout@v3

	# 2. vm에 jdk를 세팅함
    - name: Set up JDK 17
      uses: actions/setup-java@v3
      with:
        java-version: '17' # 사용하는 버전으로 수전
        distribution: 'temurin' # 배포판 선택
	
	# 3. gradle 실행
    - name: Build with Gradle
      uses: gradle/gradle-build-action@v2.4.2 # 버전 선택
      with:
        arguments: build

name을 적절히 바꾸고
setup-javajava-version도 맞게 변경한다. 지원하는 배포판은 문서를 확인하자.
gradle-build-action의 버전은 현재 기준 최신 버전인 v2.4.2로 변경하였다.

결과를 보면 캐싱이 기본적으로 활성화 되어있어 다음에 빌드하는 속도를 높일 수 있다.


3. Badge 만들기


4. Caching 설정

캐싱은 gradle-build-action에서 지원해준다.

cache-disabled

  • 캐싱을 비활성화 할 수 있는 옵션이다.
  • 기본 값은 false로 캐싱이 활성화 되어있다.
- name: Build with Gradle
  uses: gradle/gradle-build-action@v2.4.2
  with:
	arguments: build
	cache-disabled: false # true or false

cache-read-only

  • 캐시를 읽기 전용으로 할 수 있는 옵션이다. true일 경우 캐시를 읽기만 하고 저장하지는 않는다.
  • gradle-build-action는 기본적으로 main/master 브런치만 캐시를 저장한다. 만약에 release 브런치에서도 캐시를 저장하고 싶으면 이런식으로 변경하면 된다.
- name: Build with Gradle
  uses: gradle/gradle-build-action@v2.4.2
  with:
	arguments: build
	cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/release' }}

0개의 댓글