From 73dfb6e24ae2d8c7a729efd81fd2321f4e0ee2cf Mon Sep 17 00:00:00 2001 From: Ludy87 Date: Sun, 20 Jul 2025 22:01:15 +0200 Subject: [PATCH] Update build.yml --- .github/workflows/build.yml | 72 ++++++++++++++----------------------- 1 file changed, 26 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ff7a55388..d5b637899 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,6 +11,24 @@ permissions: contents: read jobs: + files-changed: + name: detect what files changed + runs-on: ubuntu-latest + timeout-minutes: 3 + # Map a step output to a job output + outputs: + build: ${{ steps.changes.outputs.build }} + app: ${{ steps.changes.outputs.app }} + project: ${{ steps.changes.outputs.project }} + openapi: ${{ steps.changes.outputs.openapi }} + steps: + - uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # v2 + + - name: Check for file changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: changes + with: + filters: ".github/config/.files.yaml" build: runs-on: ubuntu-latest @@ -94,7 +112,8 @@ jobs: if-no-files-found: warn check-generateOpenApiDocs: - needs: build + if: needs.files-changed.outputs.openapi == 'true' + needs: [files-changed, build] runs-on: ubuntu-latest steps: - name: Harden Runner @@ -105,36 +124,27 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up JDK 17 - if: ${{ steps.files.outputs.openapi == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - name: Setup Gradle - if: ${{ steps.files.outputs.openapi == 'true' }} uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 - name: Generate OpenAPI documentation - if: ${{ steps.files.outputs.openapi == 'true' }} run: ./gradlew :stirling-pdf:generateOpenApiDocs - name: Upload OpenAPI Documentation - if: ${{ steps.files.outputs.openapi == 'true' }} uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: openapi-docs path: ./SwaggerDoc.json check-licence: - needs: build + if: needs.files-changed.outputs.build == 'true' + needs: [files-changed, build] runs-on: ubuntu-latest steps: - name: Harden Runner @@ -145,21 +155,13 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up JDK 17 - if: ${{ steps.files.outputs.build == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - name: check the licenses for compatibility - if: ${{ steps.files.outputs.build == 'true' }} run: ./gradlew clean checkLicense - name: FAILED - check the licenses for compatibility @@ -172,6 +174,8 @@ jobs: retention-days: 3 docker-compose-tests: + if: needs.files-changed.outputs.project == 'true' + needs: files-changed # if: github.event_name == 'push' && github.ref == 'refs/heads/main' || # (github.event_name == 'pull_request' && # contains(github.event.pull_request.labels.*.name, 'licenses') == false && @@ -197,31 +201,21 @@ jobs: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up Java 17 - if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - name: Set up Docker Buildx - if: ${{ steps.files.outputs.project == 'true' }} uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - name: Install Docker Compose - if: ${{ steps.files.outputs.project == 'true' }} run: | sudo curl -SL "https://github.com/docker/compose/releases/download/v2.37.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose - name: Set up Python - if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: "3.12" @@ -229,12 +223,10 @@ jobs: cache-dependency-path: ./testing/cucumber/requirements.txt - name: Pip requirements - if: ${{ steps.files.outputs.project == 'true' }} run: | pip install --require-hashes -r ./testing/cucumber/requirements.txt - name: Run Docker Compose Tests - if: ${{ steps.files.outputs.project == 'true' }} run: | chmod +x ./testing/test_webpages.sh chmod +x ./testing/test.sh @@ -242,8 +234,8 @@ jobs: ./testing/test.sh test-build-docker-images: - if: github.event_name == 'pull_request' - needs: [build, check-generateOpenApiDocs, check-licence] + if: github.event_name == 'pull_request' && needs.files-changed.outputs.project == 'true' + needs: [files-changed, build, check-generateOpenApiDocs, check-licence] runs-on: ubuntu-latest strategy: fail-fast: false @@ -258,43 +250,31 @@ jobs: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up JDK 17 - if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - name: Set up Gradle - if: ${{ steps.files.outputs.project == 'true' }} uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: gradle-version: 8.14 - name: Build application - if: ${{ steps.files.outputs.project == 'true' }} run: ./gradlew clean build env: DISABLE_ADDITIONAL_FEATURES: true STIRLING_PDF_DESKTOP_UI: false - name: Set up QEMU - if: ${{ steps.files.outputs.project == 'true' }} uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 - name: Set up Docker Buildx - if: ${{ steps.files.outputs.project == 'true' }} id: buildx uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - name: Build ${{ matrix.docker-rev }} - if: ${{ steps.files.outputs.project == 'true' }} uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 with: builder: ${{ steps.buildx.outputs.name }}