# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
name: Java CI with Gradle with Docker
on:
push:
branches: [ "docker2" ]
pull_request:
branches: [ "docker2" ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
working-directory: ${{ secrets.WORKINGDIRECTORY }}
- name: Test with Gradle
run: ./gradlew build
working-directory: ${{ secrets.WORKINGDIRECTORY }}
# Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Build with Gradle Wrapper
run: ./gradlew clean build
working-directory: ${{ secrets.WORKINGDIRECTORY }}
# - name: Build with Gradle
# uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
# working-directory: ${{ secrets.WORKINGDIRECTORY }}
# with:
# arguments: build
# - name: Verify .jar file existence
# run: ls -la ./${{ secrets.WorkingDirectory }}/build/libs/
# NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html).
# If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version.
#
# - name: Setup Gradle
# uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
# with:
# gradle-version: '8.5'
#
# - name: Build with Gradle 8.5
# run: ./be/tastyhub gradle build
dependency-submission:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: docker image build
run: docker build -t ${{ secrets.DOCKER_REPOSITORY_USERNAME }}/tastyhub .
working-directory: ${{ secrets.WORKINGDIRECTORY }}
- name: docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_REPOSITORY_USERNAME }}
password: ${{ secrets.DOCKER_REPOSITORY }}
- name: docker hub push
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/tastyhub
working-directory: ${{ secrets.WORKINGDIRECTORY }}
this is my git action code
but when i start to dependency-submission, docker file can’t find *.jar file.
this is my docker file
FROM amazoncorretto:17
LABEL authors="sky213"
ARG JAR_FILE=./build/libs/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar","/app.jar"]
and this is our project structure
enter image description here
ah WORKINGDIRECTORY is our sturcture of back Spring
enter image description here
and this is docker image build by gitaction
can you help me to some advices?
i tried to gradle init and treat with tin of docker image part working directory and search google
but i don’t found this type of error. because some people said to me about checkout logic, this is make and access build/libs and .jar file. but i used it, i don’t solve this problem
Minsoo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.