diff --git a/.github/workflows/e2e-cache-dependency-path.yml b/.github/workflows/e2e-cache-dependency-path.yml new file mode 100644 index 000000000..23246a202 --- /dev/null +++ b/.github/workflows/e2e-cache-dependency-path.yml @@ -0,0 +1,93 @@ +name: Validate cache with cache-dependency-path option + +on: + push: + branches: + - main + - releases/* + paths-ignore: + - '**.md' + pull_request: + paths-ignore: + - '**.md' + +defaults: + run: + shell: bash + +jobs: + gradle1-save: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Run setup-java with the cache for gradle + uses: ./ + id: setup-java + with: + distribution: 'adopt' + java-version: '11' + cache: gradle + cache-dependency-path: __tests__/cache/gradle1/*.gradle* + - name: Create files to cache + # Need to avoid using Gradle daemon to stabilize the save process on Windows + # https://github.com/actions/cache/issues/454#issuecomment-840493935 + run: | + gradle downloadDependencies --no-daemon -p __tests__/cache/gradle1 + if [ ! -d ~/.gradle/caches ]; then + echo "::error::The ~/.gradle/caches directory does not exist unexpectedly" + exit 1 + fi + gradle1-restore: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + needs: gradle1-save + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Run setup-java with the cache for gradle + uses: ./ + id: setup-java + with: + distribution: 'adopt' + java-version: '11' + cache: gradle + cache-dependency-path: __tests__/cache/gradle1/*.gradle* + - name: Confirm that ~/.gradle/caches directory has been made + run: | + if [ ! -d ~/.gradle/caches ]; then + echo "::error::The ~/.gradle/caches directory does not exist unexpectedly" + exit 1 + fi + ls ~/.gradle/caches/ + gradle2-restore: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + needs: gradle1-save + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Run setup-java with the cache for gradle + uses: ./ + id: setup-java + with: + distribution: 'adopt' + java-version: '11' + cache: gradle + cache-dependency-path: __tests__/cache/gradle2/*.gradle* + - name: Confirm that ~/.gradle/caches directory has not been made + run: | + if [ -d ~/.gradle/caches ]; then + echo "::error::The ~/.gradle/caches directory exists unexpectedly" + exit 1 + fi diff --git a/.github/workflows/e2e-cache.yml b/.github/workflows/e2e-cache.yml index e66e80405..34a07a5fe 100644 --- a/.github/workflows/e2e-cache.yml +++ b/.github/workflows/e2e-cache.yml @@ -36,7 +36,7 @@ jobs: # Need to avoid using Gradle daemon to stabilize the save process on Windows # https://github.com/actions/cache/issues/454#issuecomment-840493935 run: | - gradle downloadDependencies --no-daemon -p __tests__/cache/gradle + gradle downloadDependencies --no-daemon -p __tests__/cache/gradle1 if [ ! -d ~/.gradle/caches ]; then echo "::error::The ~/.gradle/caches directory does not exist unexpectedly" exit 1 diff --git a/__tests__/cache/gradle/.gitignore b/__tests__/cache/gradle1/.gitignore similarity index 100% rename from __tests__/cache/gradle/.gitignore rename to __tests__/cache/gradle1/.gitignore diff --git a/__tests__/cache/gradle/build.gradle b/__tests__/cache/gradle1/build.gradle similarity index 100% rename from __tests__/cache/gradle/build.gradle rename to __tests__/cache/gradle1/build.gradle diff --git a/__tests__/cache/gradle2/.gitignore b/__tests__/cache/gradle2/.gitignore new file mode 100644 index 000000000..85888bb2e --- /dev/null +++ b/__tests__/cache/gradle2/.gitignore @@ -0,0 +1,12 @@ +.gradle +**/build/ +!src/**/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache diff --git a/__tests__/cache/gradle2/build.gradle b/__tests__/cache/gradle2/build.gradle new file mode 100644 index 000000000..a65d41b5f --- /dev/null +++ b/__tests__/cache/gradle2/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'java' +} +repositories { + mavenCentral() +} +dependencies { + implementation 'org.junit.jupiter:junit-jupiter-api:5.7.2' +} +tasks.register('downloadDependencies') { + doLast { + def total = configurations.compileClasspath.inject (0) { sum, file -> + sum + file.length() + } + println total + } +}