name: "Pull requests build" on: pull_request: paths-ignore: - '.txt' - 'LICENSE' - 'docs/**' jobs: pr-build: if: > github.event_name == 'pull_request' && !github.event.pull_request.draft && ( github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' ) runs-on: ${{ matrix.os }} strategy: matrix: os: [ ubuntu-latest, windows-latest, macos-latest ] steps: - uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: 17 architecture: x64 - name: Cache Maven packages uses: actions/cache@v3.2.6 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.1.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@v4.0.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@v4.0.0 if: runner.os == 'Linux' with: context: ./ file: ./Dockerfile_desktop push: false build-args: | webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }}