name: 'Run Tests' on: push: branches: [ 'master' ] tags: [ '*' ] pull_request: branches: [ '*' ] jobs: tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Execute tests run: ./gradlew test integrationTests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Execute integration tests run: ./gradlew integrationTest # Deploy preview build for testing based on latest successful tested master deployPreview: runs-on: ubuntu-latest needs: - tests - integrationTests if: github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Execute image build and push run: | ./gradlew bootBuildImage docker tag ghcr.io/${{ github.repository }} ghcr.io/${{ github.repository }}:preview docker push ghcr.io/${{ github.repository }}:preview