Skip to content

Commit

Permalink
Introduce the dependency caching for Maven and Gradle (#193)
Browse files Browse the repository at this point in the history
* implement a core logic to cache dependnecies

* integrate the cache logic to entry points

* add a user doc about the dependency cache feature

* reflect changes to the dist dir

* add a prefix to the cache key

https://github.com/actions/setup-java/pull/193/files#r669521434

* test: extract build.gradle to a file in __tests__ dir

* run the restore e2e test on the specified OS

* add an e2e test for maven

* fix the dependency among workflows

* stabilize the cache on the Windows in e2e test

* add .gitignore files to __tests__/cache directories

* try to run restore after the authentication

* use the key in state to save caches in the post process

* suggest users to run without daemon if fail to save Gradle cache on Windows

* add missing description in the README.md

* run clean-up tasks in serial

* Add validation for post step (#3)

* work on fixing cache post step

* fix tests

* Update src/cleanup-java.ts

Co-authored-by: Konrad Pabjan <[email protected]>

* Update src/cache.ts

Co-authored-by: Konrad Pabjan <[email protected]>

* style: put the name of input to the constants.ts

* format: run `npm run build` to reflect changes to the dist dir

* chore: update licensed files by `licensed cache`

it still has three errors as follows:
>* setup-java.npm.sax
>  filename: /Users/kengo/GitHub/setup-java/.licenses/npm/sax.dep.yml
>    - license needs review: other
>
>* setup-java.npm.tslib-1.14.1
>  filename: /Users/kengo/GitHub/setup-java/.licenses/npm/tslib-1.14.1.dep.yml
>    - license needs review: 0bsd
>
>* setup-java.npm.tslib-2.3.0
>  filename: /Users/kengo/GitHub/setup-java/.licenses/npm/tslib-2.3.0.dep.yml
>    - license needs review: 0bsd

* fix: rerun ncc on macOS with node v12

* build: follow the suggestion at PR page

#193 (comment)

* fix: throw error in case of no package manager file found

Co-authored-by: Dmitry Shibanov <[email protected]>
Co-authored-by: Konrad Pabjan <[email protected]>
  • Loading branch information
3 people authored Aug 19, 2021
1 parent 4b1b3d4 commit 08e4e81
Show file tree
Hide file tree
Showing 67 changed files with 149,975 additions and 31,588 deletions.
113 changes: 113 additions & 0 deletions .github/workflows/e2e-cache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Validate cache
on:
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'

defaults:
run:
shell: bash

jobs:
gradle-save:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run setup-java with the cache for gradle
uses: ./
id: setup-java
with:
distribution: 'adopt'
java-version: '11'
cache: 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/gradle
if [ ! -d ~/.gradle/caches ]; then
echo "::error::The ~/.gradle/caches directory does not exist unexpectedly"
exit 1
fi
gradle-restore:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
needs: gradle-save
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run setup-java with the cache for gradle
uses: ./
id: setup-java
with:
distribution: 'adopt'
java-version: '11'
cache: 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/
maven-save:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run setup-java with the cache for maven
uses: ./
id: setup-java
with:
distribution: 'adopt'
java-version: '11'
cache: maven
- name: Create files to cache
run: |
mvn verify -f __tests__/cache/maven/pom.xml
if [ ! -d ~/.m2/repository ]; then
echo "::error::The ~/.m2/repository directory does not exist unexpectedly"
exit 1
fi
maven-restore:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
needs: maven-save
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run setup-java with the cache for maven
uses: ./
id: setup-java
with:
distribution: 'adopt'
java-version: '11'
cache: maven
- name: Confirm that ~/.m2/repository directory has been made
run: |
if [ ! -d ~/.m2/repository ]; then
echo "::error::The ~/.m2/repository directory does not exist unexpectedly"
exit 1
fi
ls ~/.m2/repository
1 change: 1 addition & 0 deletions .licensed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ sources:

allowed:
- apache-2.0
- 0bsd
- bsd-2-clause
- bsd-3-clause
- isc
Expand Down
20 changes: 20 additions & 0 deletions .licenses/npm/@actions/cache.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .licenses/npm/@actions/glob-0.1.2.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .licenses/npm/@actions/glob-0.2.0.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions .licenses/npm/@azure/abort-controller.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions .licenses/npm/@azure/core-asynciterator-polyfill.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions .licenses/npm/@azure/core-auth.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions .licenses/npm/@azure/core-http.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions .licenses/npm/@azure/core-lro.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions .licenses/npm/@azure/core-paging.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 08e4e81

Please sign in to comment.