Daz DeBoer
6095a76664
Update tests for Gradle 8
2023-02-18 13:25:58 -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
e444647395
Save/restore extracted JDK instead of archive
...
Gradle 7.6 changes the way the downloaded JDKs are saved and extracted.
To workaround this difference, save and restore the extracted JDK instead.
2022-12-07 20:07:40 +13:00
Daz DeBoer
3fbe033aaa
Retain 'set-output' command when GITHUB_OUTPUT is not set
...
This should maintain compatibility with older GitHub Enterprise versions
2022-10-22 08:20:16 -06:00
Daz DeBoer
3b959539de
Remove use of deprecated 'set-output' command
...
- Use GITHUB_OUTPUT file in init script
- Write to a marker file in configuratiion-cache tests
Fixes #461
2022-10-20 14:09:12 -06:00
Daz DeBoer
394498f89f
Avoid appending to existing build-results file
...
When configuration-cache is enabled, the invocationId may not be unique, which can result in
mulitple builds writing to the same file. Rather than failing the post-action, we simply
ignore any subsequent build results with the same ID.
Fixes #441
2022-09-26 11:03:26 -06:00
Daz DeBoer
0e4b100458
Use node to set file timestamps
...
Using `find` and `touch` will not work on windows, so this provides a
cross-platform mechanism.
2022-08-26 09:04:11 -06:00
Daz DeBoer
82bc72e1e7
Re-enable cache-cleanup on Windows
2022-08-26 09:03:58 -06:00
Daz DeBoer
531cc21aeb
Clarify comment
2022-08-25 20:26:16 -06:00
Daz DeBoer
cc60593845
Disable cache-cleanup on Windows
...
It does not seem possible to use `find .. -exec ..` on Windows,
so a node-only solution may be required.
2022-08-25 20:06:13 -06:00
Daz DeBoer
fb549a8417
Avoid using GNU-specific touch options
...
This makes cache-cleaner work correctly on MacOS.
2022-08-25 20:03:04 -06:00
Daz DeBoer
25ec178747
Add integration test for cache cleanup
2022-08-22 14:08:28 -06:00
Daz DeBoer
3cc0a8f6bb
Add some explanatory comments
2022-08-22 14:08:28 -06:00
Daz DeBoer
915123c493
Add experimental support for cache-cleanup
...
- Includes basic implementation as `CacheCleaner`
- Integration test that checks unused files are removed:
- Downloaded dependencies
- Local build cache entries
- Wrapper distributions
2022-08-22 14:08:28 -06:00
Daz DeBoer
eb22e65b5b
Extract constant for Env Var name
2022-08-22 13:30:07 -06:00
Daz DeBoer
8a386f6915
Remove custom option for cache-read-timeout
...
Now that `@actions/cache` provides a env var override, we can remove our
custom configuration for setting the timeout on cache restore operations.
If the env var is NOT set, we continue to override the 60min default with 10mins.
2022-08-22 13:13:20 -06:00
Daz DeBoer
f0ec7fb780
Remove 'followSymbolicLinks: false' flag for Globber
...
It appears that when restoring the Gradle User Home directory, certain empty
directories are being identified by Node as broken symlinks. This results in
`Error: ENOENT: No such file or directory` when attempting to resolve a Glob pattern.
By using the default behaviour of Globber (followSymbolicLinks && ignoreBrokenLinks),
these bad files no longer cause errors when saving the Gradle User Home to cache.
Fixes #408
2022-08-18 17:10:03 -06:00
Daz DeBoer
8f9b7c7d7f
Add a configurable timeout for cache reads
...
Fixes #369
2022-08-16 17:37:41 -06:00
Daz DeBoer
b49446f8e1
Improved cache reporting
...
- Fix count of saved entries
- Catch and report errors on save and restore
- Correctly report entries that are never requested
2022-08-16 16:37:17 -06:00
Daz DeBoer
792a93a5e3
Do not write build-results file outside GitHub Actions context
...
The init-scripts added to Gradle User Home were assuming the presence of certain
GitHub Actions environment variables. With this fix, these init scripts behave
better without these env vars.
Fixes #350
2022-07-11 15:09:56 -06:00
Daz DeBoer
6965e8ed4c
Only stop Gradle Daemons when saving Gradle User Home state
...
Fixes #341
2022-06-22 16:41:03 -06:00
Daz DeBoer
884bca012f
Extracted some classes and refactored for clarity
2022-06-22 16:35:55 -06:00
Daz DeBoer
4cb86e9712
Report when cache not available
2022-06-20 20:17:36 -06:00
Daz DeBoer
eaed5520c4
Write job summary to logs when feature not available
2022-06-20 20:10:34 -06:00
Daz DeBoer
ec939a8c10
Disable caching when feature not available
2022-06-20 18:11:11 -06:00
Daz DeBoer
67f42d16a1
Write Job Summary HTML directly
...
This allows more control over the table layout, including centering of column content.
2022-06-19 10:42:34 -06:00
Daz DeBoer
56036f8577
Improve rendering of Job Summary
2022-06-19 09:40:27 -06:00
Daz DeBoer
df4c1902a6
Extract common functionality for recording build results
2022-06-15 08:29:55 -06:00
Daz DeBoer
132237ba05
Capture failure to publish build scan in results
2022-06-15 08:08:41 -06:00
Daz DeBoer
3d091fa7a8
Move initscripts into src/resources/init-scripts
2022-06-11 09:33:38 -06:00
Daz DeBoer
f3e4903860
Check that job summary support is available
...
Fixes #319
2022-06-09 09:26:30 -06:00
Daz DeBoer
93c31ca3b5
Don't fail if the file-to-delete no longer exists
...
Fixes #308
2022-06-06 15:35:57 -06:00
Daz DeBoer
7a15005377
Avoid printing "reason unknown" for extract entries
...
This was happening when the main Gradle User Home entry was not saved due to
having an unchanged cache key.
Fixes #309
2022-06-06 15:07:13 -06:00
Daz DeBoer
8096e65e0a
Better error reporting when file deletion fails
...
- Include file name in all logging
- Log inital attempts at debug to avoid noise
- Include output of 'jps -lm' when final attempt fails
2022-06-06 11:52:46 -06:00
Daz DeBoer
9cd70b5460
Report cache entry path for duplicate entry save
2022-06-06 08:48:03 -06:00
Daz DeBoer
63bcd47c1b
Allow Job Summary generation to be disabled
2022-06-06 07:13:23 -06:00
Daz DeBoer
213bb63776
Use java to determine user.home dir
...
Although convenient, the os.homedir() function can return a different value
that the 'user.home' SystemProperty in Java. The latter is used to locate
the Gradle User Home directory.
By switching to use Java to determine the value for 'user.home', we can use
the same process as Gradle to determine Gradle User Home.
Fixes #207
2022-06-05 22:13:36 -06:00
Daz DeBoer
0b5047ec4d
Prevent duplicate JSON being written to build-results
2022-06-05 21:55:11 -06:00
Daz DeBoer
52ebf2721a
Allow daemons to run across workflow steps
...
Now that we are stopping all Gradle daemons in the post-job action,
we can allow daemon processes to be re-used across steps in a workflow job.
Fixes #113
2022-06-05 09:20:54 -06:00
Daz DeBoer
aea6ddad5b
Attempt to stop all daemons on Job completion
2022-06-05 09:07:34 -06:00
Daz DeBoer
e644288a42
Use build-results file for root project dirs
...
Instead of using a separate mechanism and init script, reuse the information
captured in the build-results file.
2022-06-05 08:34:07 -06:00
Daz DeBoer
e234151ec9
Add more information to captured build results
...
- Root project dir: will allow us to replace project-root-capture init script
- Gradle home dir: will allow us to stop all started daemons
2022-06-05 08:18:25 -06:00
Daz DeBoer
3f2d9cde44
Capture build results when GE plugin is applied but no build-scan is published
2022-06-05 00:32:29 -06:00
Daz DeBoer
6001bc9edc
Improve build badgee for builds without scan links
2022-06-05 00:32:00 -06:00
Daz DeBoer
5203a0b09d
Capture build results when config-cache is enabled
...
When enabled, the configuration-cache will cause the build to fail when a
`buildFinished` listener is added. Instead, use a BuildService to listen for task
failures and to write the results on build completion.
2022-06-05 00:29:42 -06:00
Daz DeBoer
500607bc35
Capture build-results without build-scan publication
...
The `buildScanPublished` is only called when a build scan is published by the build.
Support other invocations by adding a `buildFinished` listener.
2022-06-05 00:28:24 -06:00
Daz DeBoer
748dc30fdc
Support and test Gradle 3.5.1
...
Fix build-scan-capture.init.gradle so that it applies to versions 3.+,
and include this version in test coverage.
2022-06-05 00:26:21 -06:00
Daz DeBoer
ece69c52b2
Save project-root-list in RUNNER_TEMP dir
...
This feels better than saving in Gradle User Home and is consistent
with where the build results are written.
2022-06-05 00:24:57 -06:00
Daz DeBoer
b02f4f1968
Disable cache-read-only when cache-write-only is set
2022-06-04 11:28:12 -06:00
Daz DeBoer
4fa0803854
Improve layout and formatting of Job Summary
...
- Move entire caching summary into details section
- Use core.summary.addTable for all table creation
- Include cache status in clickable description
2022-06-04 10:55:26 -06:00