1+ # This workflow will build a Java project with Gradle
2+ # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
3+
4+ name : Build Docker image
5+
6+ on :
7+ push :
8+ branches : [ main ]
9+
10+ jobs :
11+ build :
12+ runs-on : ubuntu-latest
13+ steps :
14+ - uses : actions/checkout@v2
15+ - name : Set up JDK 17
16+ uses : actions/setup-java@v2
17+ with :
18+ java-version : ' 17'
19+ distribution : ' temurin'
20+ - name : Grant execute permission for gradlew
21+ run : chmod +x gradlew
22+ - name : Build with Gradle
23+ run : ./gradlew build
24+ - name : Test with Gradle
25+ run : ./gradlew test
26+ - name : Build JAR
27+ run : ./gradlew shadowJar
28+ - name : Build Docker image
29+ run : docker build -t javabot .
30+ - name : Tag docker image
31+ run : |
32+ docker tag javabot ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPONAME }}:${{ github.sha }}
33+ docker tag javabot ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPONAME }}:latest
34+ env :
35+ dockerhub_username : ${{ secrets.DOCKERHUB_USERNAME }}
36+ if : env.dockerhub_username != null
37+ - name : Login to DockerHub
38+ uses : docker/login-action@v2
39+ with :
40+ username : ${{ secrets.DOCKERHUB_USERNAME }}
41+ password : ${{ secrets.DOCKERHUB_TOKEN }}
42+ env :
43+ dockerhub_username : ${{ secrets.DOCKERHUB_USERNAME }}
44+ if : env.dockerhub_username != null
45+ - name : Push to Docker Hub
46+ run : docker push --all-tags ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPONAME }}
47+ env :
48+ dockerhub_username : ${{ secrets.DOCKERHUB_USERNAME }}
49+ if : env.dockerhub_username != null
0 commit comments