name: Test cache cleanup on: workflow_call: inputs: cache-key-prefix: type: string runner-os: type: string default: '["ubuntu-latest", "windows-latest", "macos-latest"]' download-dist: type: boolean default: false env: DOWNLOAD_DIST: ${{ inputs.download-dist }} GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: integ-test-cache-cleanup-${{ inputs.cache-key-prefix }} GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true jobs: full-build: strategy: matrix: os: ${{fromJSON(inputs.runner-os)}} runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v4 - name: Download distribution if required uses: ./.github/actions/download-dist - name: Setup Gradle uses: ./ with: cache-read-only: false # For testing, allow writing cache entries on non-default branches - name: Build with 3.1 working-directory: test/jest/resources/cache-cleanup run: gradle --no-daemon --build-cache -Dcommons_math3_version="3.1" build # Second build will use the cache from the first build, but cleanup should remove unused artifacts assemble-build: needs: full-build strategy: matrix: os: ${{fromJSON(inputs.runner-os)}} runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v4 - name: Download distribution if required uses: ./.github/actions/download-dist - name: Setup Gradle uses: ./ with: cache-read-only: false gradle-home-cache-cleanup: true - name: Build with 3.1.1 working-directory: test/jest/resources/cache-cleanup run: gradle --no-daemon --build-cache -Dcommons_math3_version="3.1.1" build check-clean-cache: needs: assemble-build strategy: matrix: os: ${{fromJSON(inputs.runner-os)}} runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v4 - name: Download distribution if required uses: ./.github/actions/download-dist - name: Setup Gradle uses: ./ with: cache-read-only: true - name: Report Gradle User Home run: du -hc ~/.gradle/caches/modules-2 - name: Verify cleaned cache shell: bash run: | if [ ! -e ~/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-math3/3.1.1 ]; then echo "::error ::Should find commons-math3 3.1.1 in cache" exit 1 fi if [ -e ~/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-math3/3.1 ]; then echo "::error ::Should NOT find commons-math3 3.1 in cache" exit 1 fi