2024-06-06 20:34:00 +09:00

43 lines
1.4 KiB
YAML

name: build
#event trigger : main 브랜치에 push 이벤트 발생시 jobs가 실행된다.
on:
push:
branches: [ "main" ]
#권한 설정
permissions:
contents: read
#jobs 정의
jobs:
#build job - jdk 설정, gradle 설정, docker 배포
build:
#ubuntu 최신 버전
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# JDK 21 설정
- name: Set up JDK 21
uses: actions/setup-java@v3
# build를 위해서 jdk를 설치해줘야 하기 때문에 첫 단계로 설정하다.
with:
java-version: '21'
distribution: 'oracle'
# Gradle 설정 - gradle이 제공하는 action으로 build하는데 도움을 준다.
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
# gradlew 파일 권한 지정 - 기본적으로 gradlew에 대한 권한 설정이 되어있지 않기 때문에 권한 설정을 해준다.
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# gradle bootBuildImage를 이용해 이미지를 만들고 원격 저장소에 Push
# env에 민감 정보(환경변수)를 추가한다.
- name: Build Image with Gradle and Push to DockerHub
run: ./gradlew bootBuildImage
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}