name: Release on: push: branches: [ main ] permissions: contents: write issues: write pull-requests: write env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build-and-test: name: Build and Test runs-on: ubuntu-latest services: mongodb: image: mongo:7.0 options: >- --health-cmd "mongosh --quiet --eval 'db.runCommand({ping: 1})'" --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 27017:27017 env: mongo: mongodb://localhost:27017 database: knotes-test steps: - uses: actions/checkout@v3 - name: Set up JDK uses: actions/setup-java@v3 with: java-version: '25' distribution: 'temurin' - name: Build with Gradle run: chmod +x ./gradlew && ./gradlew clean build -x test dockerize: name: Dockerize Application needs: build-and-test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK uses: actions/setup-java@v3 with: java-version: '25' distribution: 'temurin' - name: Build run: chmod +x ./gradlew && ./gradlew build -x test - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and Push Image run: | docker buildx create --use docker buildx build --platform linux/amd64,linux/arm64 -t lhamacorp/knotes-be:latest --push .