From d1b9cfd1a4fce9359668cee6ec3dcbb2a7ed04ed Mon Sep 17 00:00:00 2001 From: Ludy Date: Sun, 20 Jul 2025 22:37:04 +0200 Subject: [PATCH] fix(ci): disable Gradle caching in GitHub workflows to resolve cache conflicts (#3986) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes - **What was changed** In all affected GitHub Actions workflow files under `.github/workflows/`, the `cache: gradle` setting was replaced with `cache: false # Disable Gradle caching for this job`. - **Why the change was made** Gradle’s cache was causing intermittent build conflicts; disabling it ensures each job starts from a clean state and avoids cache corruption. #3980 --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details. --- .github/config/.files.yaml | 16 +--- .../workflows/PR-Demo-Comment-with-react.yml | 1 - .github/workflows/build.yml | 77 +++++++------------ .github/workflows/licenses-update.yml | 1 - .github/workflows/multiOSReleases.yml | 3 - .github/workflows/push-docker.yml | 1 - .github/workflows/releaseArtifacts.yml | 1 - .github/workflows/swagger.yml | 1 - .github/workflows/testdriver.yml | 1 - 9 files changed, 30 insertions(+), 72 deletions(-) diff --git a/.github/config/.files.yaml b/.github/config/.files.yaml index 4e335b350..5ee241863 100644 --- a/.github/config/.files.yaml +++ b/.github/config/.files.yaml @@ -1,22 +1,14 @@ build: &build - build.gradle - - app/core/build.gradle - - app/common/build.gradle - - app/proprietary/build.gradle + - app/(common|core|proprietary)/build.gradle app: &app - - app/core/src/main/java/** - - app/common/src/main/java/** - - app/proprietary/src/main/java/** + - app/(common|core|proprietary)/src/main/java/** openapi: &openapi - build.gradle - - app/core/build.gradle - - app/core/src/main/java/** - - app/common/build.gradle - - app/common/src/main/java/** - - app/proprietary/build.gradle - - app/proprietary/src/main/java/** + - app/(common|core|proprietary)/build.gradle + - app/(common|core|proprietary)/src/main/java/** project: &project - app/** diff --git a/.github/workflows/PR-Demo-Comment-with-react.yml b/.github/workflows/PR-Demo-Comment-with-react.yml index 6375f73d2..877a78524 100644 --- a/.github/workflows/PR-Demo-Comment-with-react.yml +++ b/.github/workflows/PR-Demo-Comment-with-react.yml @@ -180,7 +180,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - name: Run Gradle Command run: | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 126c82221..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 @@ -38,7 +56,6 @@ jobs: with: java-version: ${{ matrix.jdk-version }} distribution: "temurin" - cache: gradle - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 @@ -95,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 @@ -106,37 +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" - cache: gradle - 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 @@ -147,22 +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" - cache: gradle - name: check the licenses for compatibility - if: ${{ steps.files.outputs.build == 'true' }} run: ./gradlew clean checkLicense - name: FAILED - check the licenses for compatibility @@ -175,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 && @@ -200,32 +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" - cache: gradle - 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" @@ -233,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 @@ -246,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 @@ -262,44 +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" - cache: gradle - 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 }} diff --git a/.github/workflows/licenses-update.yml b/.github/workflows/licenses-update.yml index 4c6188476..23c15816f 100644 --- a/.github/workflows/licenses-update.yml +++ b/.github/workflows/licenses-update.yml @@ -40,7 +40,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 diff --git a/.github/workflows/multiOSReleases.yml b/.github/workflows/multiOSReleases.yml index 014410193..3cac33e1f 100644 --- a/.github/workflows/multiOSReleases.yml +++ b/.github/workflows/multiOSReleases.yml @@ -32,7 +32,6 @@ jobs: with: distribution: 'temurin' java-version: '21' - cache: gradle # ✅ Get version from Gradle - name: Get version number @@ -72,7 +71,6 @@ jobs: with: java-version: "21" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: @@ -161,7 +159,6 @@ jobs: with: java-version: "21" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index f31e5c9b7..432925f1a 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -29,7 +29,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/releaseArtifacts.yml b/.github/workflows/releaseArtifacts.yml index 3294c7246..701bb678e 100644 --- a/.github/workflows/releaseArtifacts.yml +++ b/.github/workflows/releaseArtifacts.yml @@ -34,7 +34,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/swagger.yml b/.github/workflows/swagger.yml index 97c4ffa0e..463736b65 100644 --- a/.github/workflows/swagger.yml +++ b/.github/workflows/swagger.yml @@ -25,7 +25,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 diff --git a/.github/workflows/testdriver.yml b/.github/workflows/testdriver.yml index c0e6f589c..85c93a244 100644 --- a/.github/workflows/testdriver.yml +++ b/.github/workflows/testdriver.yml @@ -24,7 +24,6 @@ jobs: with: java-version: '17' distribution: 'temurin' - cache: gradle - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1