buildAndRelease.yml 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. name: Release
  2. env:
  3. MONGO: ${{ secrets.MONGO }}
  4. on:
  5. push:
  6. branches: [ main ]
  7. jobs:
  8. build-and-test:
  9. name: Build and Test
  10. runs-on: ubuntu-latest
  11. steps:
  12. - uses: actions/checkout@v3
  13. - name: Set up JDK
  14. uses: actions/setup-java@v3
  15. with:
  16. java-version: '25'
  17. distribution: 'temurin'
  18. - name: Build with Gradle
  19. run: chmod +x ./gradlew && ./gradlew clean build test
  20. dockerize:
  21. name: Dockerize Application
  22. needs: build-and-test
  23. runs-on: ubuntu-latest
  24. steps:
  25. - uses: actions/checkout@v3
  26. - name: Set up JDK
  27. uses: actions/setup-java@v3
  28. with:
  29. java-version: '25'
  30. distribution: 'temurin'
  31. - name: Build
  32. run: ./gradlew build
  33. - name: Set up Docker Buildx
  34. uses: docker/setup-buildx-action@v2
  35. - name: Login to Docker Hub
  36. uses: docker/login-action@v2
  37. with:
  38. username: ${{ secrets.DOCKERHUB_USERNAME }}
  39. password: ${{ secrets.DOCKERHUB_TOKEN }}
  40. - name: Build and Push Image
  41. run: |
  42. docker buildx create --use
  43. docker buildx build --platform linux/amd64,linux/arm64 -t lhamacorp/stocks-be:latest --push .