buildAndRelease.yml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. name: Release
  2. on:
  3. push:
  4. branches: [ main ]
  5. jobs:
  6. build-and-test:
  7. name: Build and Test
  8. runs-on: ubuntu-latest
  9. steps:
  10. - uses: actions/checkout@v3
  11. - name: Cache Gradle packages
  12. uses: actions/cache@v2
  13. with:
  14. path: ~/.gradle/caches
  15. key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
  16. restore-keys: ${{ runner.os }}-gradle-
  17. - name: Set up JDK
  18. uses: actions/setup-java@v3
  19. with:
  20. java-version: '21'
  21. distribution: 'temurin'
  22. - name: Build with Gradle
  23. run: chmod +x ./gradlew && ./gradlew clean build test
  24. dockerize:
  25. name: Dockerize Application
  26. needs: build-and-test
  27. runs-on: ubuntu-latest
  28. steps:
  29. - uses: actions/checkout@v3
  30. - name: Set up Docker Buildx
  31. uses: docker/setup-buildx-action@v1
  32. - name: Cache Docker layers
  33. uses: actions/cache@v2
  34. with:
  35. path: /tmp/.buildx-cache
  36. key: ${{ runner.os }}-buildx-${{ github.sha }}
  37. restore-keys: ${{ runner.os }}-buildx-
  38. - name: Set up JDK
  39. uses: actions/setup-java@v3
  40. with:
  41. java-version: '21'
  42. distribution: 'temurin'
  43. - name: Build the Docker image
  44. run: ./gradlew build && docker build -t dbohry/auth-service .
  45. - name: Login to Docker Hub
  46. uses: docker/login-action@v2
  47. with:
  48. username: ${{ secrets.DOCKERHUB_USERNAME }}
  49. password: ${{ secrets.DOCKERHUB_TOKEN }}
  50. - name: Push image
  51. run: docker push dbohry/auth-service