buildAndRelease.yml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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: Set up JDK
  12. uses: actions/setup-java@v3
  13. with:
  14. java-version: '21'
  15. distribution: 'temurin'
  16. - name: Build with Gradle
  17. run: chmod +x ./gradlew && ./gradlew clean build test
  18. dockerize:
  19. name: Dockerize Application
  20. needs: build-and-test
  21. runs-on: ubuntu-latest
  22. steps:
  23. - uses: actions/checkout@v3
  24. - name: Set up Docker Buildx
  25. uses: docker/setup-buildx-action@v1
  26. - name: Set up JDK
  27. uses: actions/setup-java@v3
  28. with:
  29. java-version: '21'
  30. distribution: 'temurin'
  31. - name: Build the Docker image
  32. run: ./gradlew build && docker build -t dbohry/auth-service .
  33. - name: Login to Docker Hub
  34. uses: docker/login-action@v2
  35. with:
  36. username: ${{ secrets.DOCKERHUB_USERNAME }}
  37. password: ${{ secrets.DOCKERHUB_TOKEN }}
  38. - name: Push image
  39. run: docker push dbohry/auth-service
  40. dockerize-arm:
  41. name: Dockerize ARM Application
  42. needs: build-and-test
  43. runs-on: ubuntu-latest
  44. steps:
  45. - uses: actions/checkout@v3
  46. - name: Set up JDK
  47. uses: actions/setup-java@v3
  48. with:
  49. java-version: '21'
  50. distribution: 'temurin'
  51. - name: Build
  52. run: ./gradlew build
  53. - name: Set up Docker Buildx
  54. uses: docker/setup-buildx-action@v2
  55. - name: Login to Docker Hub
  56. uses: docker/login-action@v2
  57. with:
  58. username: ${{ secrets.DOCKERHUB_USERNAME }}
  59. password: ${{ secrets.DOCKERHUB_TOKEN }}
  60. - name: Build and Push ARM Image
  61. run: |
  62. docker buildx create --use
  63. docker buildx build --platform linux/arm64 -t dbohry/auth-service:arm-latest --push .