Commit graph

264 commits

Author SHA1 Message Date
daz
626d937994
Remove commas from workflow name
Commas are explicitly disallowed in cache keys, so remove any from
workflow name when generating cache key.
2023-06-29 10:01:14 -06:00
daz
8e02c8272a
Build outputs 2023-06-28 12:24:28 -06:00
daz
75a86cfe02
Build outputs 2023-06-28 11:24:58 -06:00
daz
4388b1f9e5
Build outputs 2023-06-06 10:51:48 -06:00
daz
2bf6bc3646
Include workflow name in cache key
Fixes #699 by avoiding cache key collisions between jobs with the
same name in different workflows.
2023-05-23 14:59:12 -06:00
daz
a810b86311
Update dependencies
- Bump string-argv from 0.3.1 to 0.3.2
- Bump patch-package from 6.5.1 to 7.0.0
- Bump @typescript-eslint/parser from 5.59.1 to 5.59.2
2023-05-02 14:58:36 -06:00
Daz DeBoer
eb126d771e
Update for Gradle 8.1 release
With Gradle 8.1, the configuration-cache has changed and is now stable. 
As a temporary measure, this commit disables save/restore of the configuration-cache
data to avoid issues until we can deal with this change properly.
2023-04-14 16:23:09 -06:00
daz
5056fa9d50
Patch @azure/logger to address CodeQL violations 2023-04-12 14:15:34 -06:00
daz
4f87177da0
Build outputs 2023-04-12 13:03:31 -06:00
Daz DeBoer
a8f0f0d523
NPM dependency updates
* Update development dependencies
* Update runtime dependencies
2023-03-25 13:05:25 -06:00
Daz DeBoer
530c579a03
Update dependencies 2023-02-20 15:10:09 -07:00
Daz DeBoer
6df3b5baf5
Udate @actions/cache to 3.1.3 2023-02-14 09:31:23 -07:00
Daz DeBoer
59d37bdb61
Bump @actions/cache to 3.1.2 2023-02-06 15:06:03 -07:00
Daz DeBoer
b47aad4750
Remove use of deprecated fs.rmdir
Using fs.rm({recursive: true}) instead.

Fixes #502
2023-02-06 12:40:03 -07:00
Daz DeBoer
50f436c485
Bump @actions/glob from 0.3.0 to 0.4.0 2023-02-06 12:31:46 -07:00
Daz DeBoer
b744d1079a
Update development dependencies 2023-01-19 18:10:04 -07:00
Daz DeBoer
7e68f96bb3
Build outputs 2022-12-07 20:10:55 +13:00
Daz DeBoer
970a1475f1
Update development dependencies 2022-12-07 17:30:50 +13:00
Daz DeBoer
fab7664a6a
Reset patch and build outputs 2022-10-20 07:28:45 -06:00
Daz DeBoer
c224a16628
Update node dependencies 2022-10-20 07:06:26 -06:00
Daz DeBoer
af916fa394
Build outputs 2022-09-27 07:47:20 -06:00
Daz DeBoer
c295a4096e
Patch @azure/logger to fix CodeQL warning
Logging of the AZURE_LOG_LEVEL env var value is considered a security issue,
since any environment variable value could contain sensitive information.
In this case, logging the value is not really necessary.
2022-09-22 10:28:11 -06:00
Daz DeBoer
74a56b60ce
Disable source-map-register
The included sourcemap-register.js file is triggering a high priority
CodeQL warning, which can prevent users from adopting the action.
Removing this sourcemap support for now, until this can be fixed upstream.
2022-09-22 10:22:04 -06:00
Daz DeBoer
fc9e8feb61
Build outputs 2022-08-26 09:04:11 -06:00
Daz DeBoer
d6110ecac2
Build outputs 2022-08-25 20:06:13 -06:00
Daz DeBoer
11c5fa73ac
Build outputs 2022-08-22 14:10:53 -06:00
Daz DeBoer
865815e1b6
Build outputs 2022-08-22 13:30:44 -06:00
Daz DeBoer
cd579d970f
Build outputs 2022-08-18 17:19:11 -06:00
Daz DeBoer
9411346324
Build outputs 2022-08-16 17:55:14 -06:00
Daz DeBoer
8df5664474
Simplify patch 2022-08-16 17:30:58 -06:00
Daz DeBoer
25e9b4d3f6
Build outputs 2022-08-16 16:38:03 -06:00
Daz DeBoer
a62a2e6297
Build outputs 2022-08-15 19:02:19 -06:00
Daz DeBoer
8ca744f938
Build outputs 2022-08-15 12:50:44 -06:00
Daz DeBoer
6daf446e27
Build outputs 2022-07-11 13:37:59 -06:00
Daz DeBoer
fecf3693b5
Build outputs 2022-06-22 16:41:13 -06:00
Daz DeBoer
d8b58e3519
Build outputs 2022-06-20 20:18:17 -06:00
Daz DeBoer
6594e9d359
Update dev dependencies 2022-06-20 18:08:11 -06:00
Daz DeBoer
ce3874fec9
Build outputs 2022-06-19 10:43:31 -06:00
Daz DeBoer
f1c1269910
Build outputs 2022-06-12 09:55:45 -06:00
Daz DeBoer
f3e4903860
Check that job summary support is available
Fixes #319
2022-06-09 09:26:30 -06:00
Daz DeBoer
ee54c1fd71
Bump @actions/cache from 2.0.5 to 2.0.6 2022-06-06 19:12:03 -06:00
Daz DeBoer
33ed11e54c
Build outputs 2022-06-06 15:36:40 -06:00
Daz DeBoer
de51428ba5
Build outputs 2022-06-06 11:53:30 -06:00
Daz DeBoer
c34d4a9731
Build outputs 2022-06-05 22:15:43 -06:00
Daz DeBoer
865c16699a
Build outputs 2022-06-05 10:25:29 -06:00
Daz DeBoer
b400dc555d
Build outputs 2022-06-05 00:32:29 -06:00
Daz DeBoer
6aa41b32df
Build outputs 2022-06-04 10:57:25 -06:00
Daz DeBoer
4da299730b
Build outputs 2022-06-03 13:51:36 -06:00
Daz DeBoer
f4d1e351c0
Build outputs 2022-06-02 23:17:50 -06:00
Daz DeBoer
d79b3ba8ae
Build outputs 2022-06-02 12:25:11 -06:00
Daz DeBoer
2e34e4f80f
Build outputs 2022-05-29 11:50:51 -06:00
Daz DeBoer
12be8b4772
Build outputs 2022-05-29 09:32:01 -06:00
Daz DeBoer
be62f7d934
Merge branch 'releases/v2.1'
* releases/v2.1:
  Build outputs
  Remove downloaded wrapper zips before caching
  Fix typo in worklow step
2022-05-29 09:23:36 -06:00
Daz DeBoer
9b814496b5
Build outputs 2022-05-29 08:51:47 -06:00
Daz DeBoer
c48eef1c6e
Update dependencies
- Bump @actions/cache from 2.0.4 to 2.0.5
- Bump ts-jest from 28.0.2 to 28.0.3
- Bump typescript from 4.6.4 to 4.7.2
- Bump @vercel/ncc from 0.33.4 to 0.34.0
2022-05-28 08:08:08 -06:00
Leonard Brünings
544da49fda
Disable minify to get smaller diffs and save space
Due to a limitation in ncc, the js files contain CRLF line endings
which are then converted by git.
2022-05-27 20:28:26 -06:00
Daz DeBoer
7645e6e536
Replace emoji characters with markdown 2022-05-24 16:37:15 +02:00
Daz DeBoer
30a933bf94
Build outputs 2022-05-24 15:02:41 +02:00
Daz DeBoer
116ac10f81
Bump dependencies
Production deps:
- Bump @actions/tool-cache from 1.7.2 to 2.0.1
- Bump @actions/http-client from 1.0.11 to 2.0.1
- Bump @actions/github from 5.0.1 to 5.0.3
- Bump @actions/cache from 2.0.2 to 2.0.4

Dev deps:
- Bump eslint from 8.14.0 to 8.15.0
- Bump eslint-plugin-jest from 26.2.0 to 26.2.2
- Bump jest from 27.5.1 to 28.1.0
- Bump ts-jst from 27.1.4 to 28.0.2
2022-05-15 10:27:50 -06:00
Daz DeBoer
202e4e0271
Bump various dependencies
Production deps:
- Bump @actions/core:1.6.0 to 1.8.2

Development deps:
- Bump typescript from 4.6.3 to 4.6.4
- Bump @typescript-eslint/parser from 5.20.0 to 5.23.0
- Bump eslint-plugin-jest from 26.1.4 to 26.2.0
- Switch from deprecated @zeit/ncc to @vercel/ncc
2022-05-15 09:49:27 -06:00
Daz DeBoer
b147a594b1
Bump @actions/glob to v0.3.0 2022-04-19 16:36:26 -06:00
Daz DeBoer
27c4618d3e
Bump @actions/cache from 2.0.1 to 2.0.2 2022-04-11 11:55:03 -07:00
Daz DeBoer
3317bc450c
Bump @actions/cache from 2.0.0 to 2.0.1 2022-04-04 21:46:52 -06:00
Daz DeBoer
0e24fa1975
Save/restore exploded Gradle dist rather than zip
To save space, future versions of Gradle are likely to delete the downloaded distribution
after extracting it. See gradle/gradle#3605 and gradle/gradle#19495.
To cater for this we will now save/restore the extracted distribution rather than the
downloaded zip file.
2022-04-04 21:43:31 -06:00
Daz DeBoer
ba0737b352
Build outputs 2022-03-28 14:04:10 -06:00
Daz DeBoer
0d13054264
Log stack trace for cache errors 2022-03-18 13:56:40 -06:00
Daz DeBoer
d700906a15
Update dependency versions
- @actions/cache 1.0.9 -> 1.0.10
- @actions/exec 1.1.0 -> 1.1.1
- @actions/glob 0.2.0 -> 0.2.1
- @actions/tool-cache 1.7.1 -> 1.7.2
2022-03-18 05:51:44 -06:00
Daz DeBoer
db5c425004
Bump versions for devDependencies
- typescript 4.5.5 -> 4.6.2
- @typescipt-eslint/parser 5.12.1 -> 5.13.0
- eslint 8.9.0 -> 8.10.0
2022-03-02 13:47:44 -07:00
Daz DeBoer
a0998071eb
Build outputs 2022-02-03 09:55:51 -07:00
Daz DeBoer
893f0e10c7
Build outputs 2022-01-27 08:23:46 -07:00
Daz DeBoer
702bb97ecb
Do not overwrite existing gradle.properties 2022-01-24 15:18:11 -07:00
Daz DeBoer
2734714920
Build outputs 2022-01-21 08:09:33 -07:00
Daz DeBoer
222b714890
Build outputs 2022-01-17 14:44:32 -07:00
Daz DeBoer
42faf281e6
Include names of requested tasks in build scan notice
This should make it easier to differentiate between build scan notices for different
Gradle invocations in the same Job.

Fixes: #124
2021-12-31 10:34:53 -07:00
Daz DeBoer
13d93c1ca1
Check executable bit on Gradle script
Fixes #76
2021-12-30 21:40:27 -07:00
Daz DeBoer
39e51526fb
Build outputs 2021-12-30 16:03:02 -07:00
Daz DeBoer
d50632cfd1
Build outputs 2021-12-17 10:29:59 -07:00
Daz DeBoer
3814d56740
Build outputs 2021-12-08 15:14:19 -07:00
Daz DeBoer
887e1a09ab
Include original error in log messages 2021-12-08 14:44:57 -07:00
Daz DeBoer
574cf0ddce Build outputs 2021-12-08 14:05:13 -07:00
Daz DeBoer
b88c4086b9
Don't overwrite title in build-scan notice 2021-12-08 13:07:52 -07:00
Daz DeBoer
ddee3ca933
Update all outdated dependencies 2021-12-02 14:35:52 -07:00
Daz DeBoer
322805e800
Refactor: use a single .json file to describe all cached artifact bundles (#121)
This is a pure refactor, moving from a separate .cache file per bundle to a single cache-metadata.json file describing all bundles. Instead of storing cache metadata in a separate .cache file per artifact bundle, all of the metadata is now stored in a single `.json` file.

This will make it easier to implement more flexible artifact-caching strategies, such as caching each wrapper zip separately.

* Always include cache protocol version in cache key
* Store all cache metadata in a single JSON file
* Rename cache-metadata file and bump protocol version
* Polish and documentation
2021-11-28 10:19:56 -07:00
Daz DeBoer
fdfc5bf12f
Build outputs 2021-11-28 08:04:54 -07:00
Daz DeBoer
996094e8e8
Avoid failing job on any failure in post-action
Failures to store cache entries should not fail the action or the Job.
This fix attempts to catch and log any unexpected errors that occur when
saving cache entries.

Fixes: #119
Fixes: #120
2021-11-15 09:31:56 -07:00
Daz DeBoer
4137be6a8b
Minor improvement to logging in post-action
- Ensure that "Caching Gradle state" group always has 1 message
- Only print cache report when entries were restored or saved
2021-11-05 08:35:45 -06:00
Daz DeBoer
4e899835b3
Avoid failing build on distributions cache errors
- Warn and continue on failure to restore a Gradle distribution from cache
- Warn and continue on failure to save a Gradle distribution to cache
- Extract common functionality for consistent handling of cache failures

Fixes #116
2021-11-05 07:01:48 -06:00
Daz DeBoer
717db318c1
Fix logging of cache key for Gradle User Home 2021-10-31 20:49:29 -06:00
Daz DeBoer
230fd6b47f
Build outputs 2021-10-30 13:46:29 -06:00
Daz DeBoer
727b4612ba
Fix early return from bundle processing 2021-10-30 12:11:59 -06:00
Daz DeBoer
db6202adcd
Build outputs 2021-10-30 06:29:25 -06:00
Daz DeBoer
c031dc946b
Build outputs 2021-10-27 16:09:53 -06:00
Daz DeBoer
39db90e99b
Include build scan link in failure notice 2021-10-21 12:04:25 -06:00
Daz DeBoer
b99e9f0bc3
Build outputs 2021-10-21 11:13:10 -06:00
Daz DeBoer
a94b9252d5
Improve cache logging 2021-10-16 10:15:40 -06:00
Daz DeBoer
25672bf196
Build outputs 2021-10-16 09:50:40 -06:00
Daz DeBoer
263f84178a
Prefix cache key with protocol version
This will ensure that incompatiblee cache entries generated by previous action releases
will not be used.
2021-10-16 08:33:42 -06:00
Daz DeBoer
fe55bf4667
Build outputs 2021-10-15 14:56:44 -06:00
Daz DeBoer
7abf13ee48
Build outputs 2021-10-15 13:21:26 -06:00
Daz DeBoer
e7b5fd0b28
Build outputs 2021-10-15 11:46:51 -06:00
Daz DeBoer
8ab7c9d8dd
Do not fail action on cache errors
Ensure that we catch and log errors in `beforeSave` and `afterRestore`,
and do not fail the entire workflow in these cases.
2021-10-14 12:19:24 -06:00
Daz DeBoer
5328161026
Build outputs 2021-10-04 23:59:42 +02:00
Daz DeBoer
60b1ffac6b
Fix build-scan-init script to work with build-in build-scan plugins 2021-09-29 14:39:48 -06:00
Daz DeBoer
0918f5f2a4
Rename source file for clarity 2021-09-28 00:04:50 -06:00
Daz DeBoer
a7174b82a2
Use init script to capture build scan URL
Instead of parsing the log output, we instead register a
buildScanPublished listener and record the build scan URL
to a file. This file is subsequently read to report the
build scan URL.

Fixes #30
2021-09-28 00:04:41 -06:00
Daz DeBoer
1fb8644035
Build outputs 2021-09-27 21:53:19 -06:00
Daz DeBoer
bebb162342
Usability improvements:
- Include bundle name in cache key
- Emit a few more messages at 'info'
2021-09-15 17:50:53 -06:00
Daz DeBoer
6084a4eb65
Cache artifacts with single entry per type
When caching is too fine-grained, an excessive number of cache
requests can result in HTTP 429 errors due to rate limiting.
By caching all artifacts of a particular type in a single entry
we hope to mitigate this, at the expense of some reduction in
cache space optimization.

This change also adds caching for all dependency jars, as well as
instrumented jars in the 'caches/jars-X' directory.
2021-09-15 17:45:47 -06:00
Daz DeBoer
9bfa003014
Build outputs 2021-09-14 18:11:31 -06:00
Daz DeBoer
d06e19f862
Build outputs 2021-09-13 11:50:07 -06:00
Daz DeBoer
cae99bf6d9
Tidy up cache entry de-duplication
- Rename feature to "common artifact caching"
- Cleanup logging
- Refactor/rename for clarity
2021-09-12 10:31:52 -06:00
Daz DeBoer
5a90152b1f
Restore/cache deduplicated files in parallel 2021-09-12 10:31:52 -06:00
Daz DeBoer
4b92b8d013
Cache downloaded dependency jars separately
This will further remove common files out the the Gradle User Home
cache entries, reducing cache usage by removing redundancy.
2021-09-12 10:31:51 -06:00
Daz DeBoer
693293c29a
Consolidate logic for separate artifact file caching
Making this functionality more general will make it easier to add other
artifacts to the set that we cache separately.
2021-09-12 10:31:51 -06:00
Daz DeBoer
ac5d8920dd
Cache generated-gradle-jars separately from Gradle User Home
Similar to wrapper distributions, these large files are common
to many Gradle User Home cache entries. Storing them separately removes
this redundancy from the Gradle User Home cache.
2021-09-12 10:31:51 -06:00
Daz DeBoer
e833360307
Cache downloaded wrapper dists separately
In the current model, each cached Gradle User Home could contain
a copy of one or more downloaded wrapper distributions. This results
in large cache entries which could easily lead to premature eviction.

With this change, wrapper dists are cached separately from the rest
of the Gradle User Home directory. The artifact file is replaced by
a marker file which allows the action to restore the artifact from
cache when the Gradle user Home cache is restored.
2021-09-12 10:31:51 -06:00
Daz DeBoer
4032438d2b
Build outputs 2021-09-07 16:26:37 -06:00
Daz DeBoer
c79d4172e0
Build outputs 2021-08-27 12:53:01 -06:00
Daz DeBoer
b3afdc78a7
Truncate Gradle args when constructing cache key (#71)
Cache keys have a hard limit of 512 characters, so we need to ensure that we don't generate a key longer than this.

- Remove excess whitespace
- Truncate to 400 characters

Fixes #70
2021-08-24 12:46:48 -06:00
Daz DeBoer
e0c2736e35
Include Gradle invocation arguments in cache keys (#69)
This permits a new cache entry to be persisted when a subsequent Gradle invocation does more work that an earlier invocation.

Fixes #68
2021-08-22 17:11:05 -06:00
Daz DeBoer
a63892c289
Log cache entry on save 2021-08-22 14:58:36 -06:00
Daz DeBoer
c86093d76a
Build distribution 2021-08-22 14:28:35 -06:00
Daz DeBoer
7336529ec5
Build distribution 2021-08-07 16:13:35 -07:00
Daz DeBoer
bc4d6bddd4
Rebuild index files 2021-07-26 15:45:00 -06:00
Daz DeBoer
33e91b639d
Cache Gradle distributions downloaded for a particular version (#58)
- Cache is separate from (but similar to) the wrapper distribution cache
- New 'distributions-cache-enabled' flag controls caching of all downloaded distributions
  (including wrapper distributions)
- Deprecated the 'wrapper-cache-enabled' flag for removal in v2
2021-07-08 12:22:48 -06:00
Daz DeBoer
e4ec586f46 Only cache the wrapper ZIP, not the exploded dir
Prior to this change, the wrapper cache contained both the downloaded zip
file as well as the exploded wrapper dir. Only the zip file is required,
as Gradle will automatically detect and unpack.
2021-07-08 08:01:44 -06:00
Daz DeBoer
15a8123fbc Validate presense of gradle wrapper to provide better feedback
- Provide a more useful error message when no Gradle wrapper can be located,
  and 'gradle-version' or 'gradle-executable' is not used.
- Add test for case where wrapper is missing.
  This isn't really a "test" per-se, but this failing build invocation makes it
  easy to verify the GitHub action behaviour when the build is misconfigured.
2021-07-08 08:01:44 -06:00
Daz DeBoer
18c8a679dc Look for gradle wrapper in build-root-directory by default
This removes the need to specify `wrapper-directory` when using a Gradle
project that is not located in the root of the workspace.

Fixes #44.
2021-07-06 09:56:27 -06:00
Daz DeBoer
738bda9866
Use built-in library functions in preference to custom implementations
- Use built-in `hashFiles` function included in '@actions/globv0.2.0'
- Use `downloadTool` and `extractZip` functions from '@actions/tool-cache'
2021-07-05 13:57:22 -06:00
Daz DeBoer
47c9af9d7d
Rebuild outputs 2021-07-05 12:40:53 -06:00
paul
6bf2690b23 Upgrade dependencies 2020-12-22 12:11:50 +01:00
Paul Merlin
2efcc22ff5 Replace typed-rest-client with @actions/http-client 2020-09-13 14:17:37 +02:00
Paul Merlin
cb2742a00b Protect RC provisioning from network problems and add logging 2020-09-13 13:30:54 +02:00
Paul Merlin
863daedf86 Bump test build wrapper 2020-09-13 13:23:48 +02:00
Paul Merlin
e3d60b3873 Protect wrapper cache restore against tar errors 2020-09-13 13:06:00 +02:00
Paul Merlin
2dd6cc1801 Upgrade dependencies 2020-09-13 12:37:40 +02:00
Paul Merlin
f11e7d60d7 Short-circuit dependencies and configuration caching if cache dir already exists
This is relevant if you run this action several times in a single job.
This prevent doing unnecessary work starting with the second job using the action.
This prevent droping dependencies downloaded by the first job using the action.
This prevent Windows agents to fail unlinking already existing files.
2020-06-22 16:40:58 +02:00
Paul Merlin
7137b09ae2 Upgrade dependencies 2020-06-22 16:36:25 +02:00
Paul Merlin
466a737d16 Only restore wrapper cache if dir doesn't exist 2020-06-15 19:33:04 +02:00
Paul Merlin
4c7d97cca4 Add caching of Gradle build configuration cache 2020-06-15 15:58:20 +02:00
Paul Merlin
ae50675399 Better warning message 2020-06-15 15:43:21 +02:00
Paul Merlin
d7a54a26c7 Don't drop gc.properties in dependencies cache
because it would disable Gradle cache cleanup
2020-06-15 15:41:53 +02:00
Paul Merlin
02a8a21e55 Add input to disable wrapper caching 2020-06-15 15:41:09 +02:00
Paul Merlin
3abad5567a Add input to disable dependencies caching altogether 2020-06-15 14:32:54 +02:00
Paul Merlin
355e9c1f86 Try delete dependencies lock files and disable caching if not possible 2020-06-15 14:22:41 +02:00
Paul Merlin
26dd4cb9bb Make file hashing more robust 2020-06-15 14:09:44 +02:00
Paul Merlin
317ca35dca Refine dependencies caching 2020-06-15 13:16:51 +02:00
Paul Merlin
053762c1c1 Add input to make the dependencies caching strict 2020-06-15 13:05:36 +02:00
Paul Merlin
95e20daa83 Automatic caching of dependencies
in a best effort manner by default
allowing to specify files to hash for computing the cache key
2020-06-15 13:04:42 +02:00
Paul Merlin
692fda9de7 Cache wrapper install when gradle-executable points to a wrapper 2020-06-14 18:01:54 +02:00