name: "Branch build"
on:
    push:
      branches:
        - "*"
        - "!main"

jobs:
    branch-build:
        runs-on: ${{ matrix.os }}
        strategy:
            matrix:
                os: [ ubuntu-latest, windows-latest, macos-latest ]
                java-version: [ 21 ]
        steps:
            -   uses: actions/checkout@v4
            -   name: Set up JDK ${{ matrix.java-version }}
                uses: actions/setup-java@v4
                with:
                    distribution: 'temurin'
                    java-version: ${{ matrix.java-version }}
                    architecture: x64
            -   name: Cache Maven packages
                uses: actions/cache@v3.3.1
                with:
                    path: ~/.m2
                    key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
                    restore-keys: ${{ runner.os }}-m2-
            -   name: Build with Maven
                run: mvn --no-transfer-progress verify
            -   name: "Set up QEMU"
                if: runner.os == 'Linux'
                uses: docker/setup-qemu-action@v2.2.0
            -   name: "Set up Docker Buildx"
                if: runner.os == 'Linux'
                uses: docker/setup-buildx-action@v2
            -   name: "Verify Docker WebGoat build"
                if: runner.os == 'Linux'
                uses: docker/build-push-action@v5.1.0
                with:
                    context: ./
                    file: ./Dockerfile
                    push: false
                    build-args: |
                        webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }}
            -   name: "Verify Docker WebGoat desktop build"
                uses: docker/build-push-action@v5.1.0
                if: runner.os == 'Linux'
                with:
                    context: ./
                    file: ./Dockerfile_desktop
                    push: false
                    build-args: |
                        webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }}
