.github
위와같이 work flow 파일이 들어갈 디렉토리를 프로젝트 최상단에 만들어줍니다.
workflow yml 파일 생성
name: Build and Push Java Application
on:
push:
branches:
- main
env:
JAVA_VERSION: '17'
GRADLE_VERSION: '8.1.1'
DOCKER_IMAGE_NAME: 'sieun96/travel-planner:latest'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'temurin'
cache: gradle
- name: Build with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: build -x test # 테스트는 제외합니다.
gradle-version: ${{ env.GRADLE_VERSION }}
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PWD }}
- name: List JAR files # 제대로 빌드가 되어 jar 파일이 생겼는지 확인합니다.
run: ls -lah build/libs/
- name: Set up Docker Buildx # 멀티 플랫폼 이미지를 만들기 위해 buildx 를 사용합니다.
uses: docker/setup-buildx-action@v1
- name: Push image
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ env.DOCKER_IMAGE_NAME }}
file: ./Dockerfile
context: .
build-args: |
JAR_FILE=build/libs/travel-0.0.1-SNAPSHOT.jar
platforms: | # 플랫폼을 지정합니다.
linux/amd64
linux/arm64
windows/amd64
YAML
복사