generated from remal/oss-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaction.yml
105 lines (101 loc) · 9.77 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
name: Cache Gradle
description: Improved cache for Gradle
inputs:
cache-version:
required: true
default: '1'
description: "Cache version. Change it to reset cache."
build-cache-enabled:
required: true
default: 'true'
description: "Set to 'false' to disable Gradle Build Cache"
build-cache-for-branches-only:
required: true
default: 'false'
description: "Set to 'true' to disable Gradle Build Cache for tags"
default-branch:
required: false
description: "Repository default branch. Will be retrieved from GitHub if not set."
lookup-only:
required: true
default: 'false'
description: "If true, only checks if cache entry exists and skips download. Does not change save cache behavior."
outputs:
gradle-wrapper-cache-hit:
description: "A boolean value to indicate an exact match was found for Gradle wrapper cache"
value: ${{steps.gradle-wrapper.outputs.cache-hit}}
gradle-caches-cache-hit:
description: "A boolean value to indicate an exact match was found for Gradle caches cache"
value: ${{steps.gradle-caches.outputs.cache-hit}}
runs:
using: composite
steps:
- name: Cache Gradle wrapper
id: gradle-wrapper
uses: actions/cache@v4
with:
lookup-only: '${{inputs.lookup-only}}'
key: v${{inputs.cache-version}}-${{runner.os}}-gradle-wrapper-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties')}}
path: |
${{env.GRADLE_USER_HOME || '~/.gradle'}}/wrapper/dists
- name: Cache Gradle caches
id: gradle-caches
uses: actions/cache@v4
with:
lookup-only: '${{inputs.lookup-only}}'
key: v${{inputs.cache-version}}-${{runner.os}}-gradle-caches-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}
path: |
${{env.GRADLE_USER_HOME || '~/.gradle'}}/caches
${{env.GRADLE_USER_HOME || '~/.gradle'}}/jdks
${{env.GRADLE_USER_HOME || '~/.gradle'}}/notifications
- name: Cleanup Gradle wrapper cache
if: ${{steps.gradle-wrapper.outputs.cache-hit != 'true' || steps.gradle-caches.outputs.cache-hit != 'true'}}
uses: remal-github-actions/cache-gradle-cleanup-wrapper@v1
- name: Setup Gradle Build Cache
if: ${{inputs.build-cache-enabled == 'true' && (inputs.build-cache-for-branches-only == 'false' || github.ref_type == 'branch')}}
shell: bash
run: |
mkdir -p ${{env.GRADLE_USER_HOME || '~/.gradle'}}
echo "" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/gradle.properties
echo "org.gradle.caching = true" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/gradle.properties
mkdir -p ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d
echo "gradle.settingsEvaluated { settings ->" > ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d/build-cache.gradle
echo " settings.buildCache {" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d/build-cache.gradle
echo " local {" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d/build-cache.gradle
echo " directory = new File('${{env.GRADLE_USER_HOME || '~/.gradle'}}/.build-cache'.replaceFirst('^~/', System.getProperty('user.home') + '/'))" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d/build-cache.gradle
echo " }" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d/build-cache.gradle
echo " }" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d/build-cache.gradle
echo "}" >> ${{env.GRADLE_USER_HOME || '~/.gradle'}}/init.d/build-cache.gradle
- name: Retrieve repository info
id: repository-info
if: ${{inputs.build-cache-enabled == 'true' && (inputs.build-cache-for-branches-only == 'false' || github.ref_type == 'branch')}}
uses: remal-github-actions/retrieve-repository-info@v1
- name: Cache Gradle Build Cache for branch
if: ${{inputs.build-cache-enabled == 'true' && (inputs.build-cache-for-branches-only == 'false' || github.ref_type == 'branch') && !github.base_ref}}
uses: actions/cache@v4
with:
lookup-only: '${{inputs.lookup-only}}'
key: v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-${{github.sha}}-${{github.run_id}}-${{github.run_attempt}}
restore-keys: |
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-${{github.sha}}-${{github.run_id}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-${{github.sha}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-refs/heads/${{fromJSON(steps.repository-info.outputs.result).defaultBranch}}-
path: |
${{env.GRADLE_USER_HOME || '~/.gradle'}}/.build-cache
- name: Cache Gradle Build Cache for Pull Request
if: ${{inputs.build-cache-enabled == 'true' && (inputs.build-cache-for-branches-only == 'false' || github.ref_type == 'branch') && github.base_ref}}
uses: actions/cache@v4
with:
lookup-only: '${{inputs.lookup-only}}'
key: v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-${{github.sha}}-${{github.run_id}}-${{github.run_attempt}}
restore-keys: |
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-${{github.sha}}-${{github.run_id}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-${{github.sha}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{github.ref}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{format('refs/heads/{0}', github.base_ref)}}-${{github.sha}}-${{github.run_id}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{format('refs/heads/{0}', github.base_ref)}}-${{github.sha}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-${{format('refs/heads/{0}', github.base_ref)}}-
v${{inputs.cache-version}}-${{runner.os}}-gradle-build-cache-${{hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/gradle/gradle-daemon-jvm.properties', '**/*.gradle', '**/*.gradle.kts', '**/gradle.properties', '**/gradle.lockfile', '**/*-gradle.lockfile' , '**/gradle/*.versions.toml')}}-${{github.job}}-${{strategy.job-index||'0'}}-refs/heads/${{fromJSON(steps.repository-info.outputs.result).defaultBranch}}-
path: |
${{env.GRADLE_USER_HOME || '~/.gradle'}}/.build-cache