Commit Graph
100 Commits
Author SHA1 Message Date
daz b51fcf4d6c Only allow 1 integ-test at a time 2024-08-12 10:33:22 -06:00
daz 82758ea0fa Emphasise notice in wrapper-validation docs 2024-08-12 10:03:35 -06:00
daz e482045599 Tweak log message 2024-08-08 13:34:53 -06:00
Daz DeBoerandGitHub d724da5563 Update RELEASING.md for v4 2024-08-07 11:41:14 -06:00
daz 64869b1757 Attempt to reduce contention in integ-test-full 2024-08-07 09:04:49 -06:00
Daz DeBoerandGitHub 0b404a7148 Reduce Dependabot checks to weekly 2024-08-07 07:58:19 -06:00
daz a5a9e731f3 Bump the npm-dependencies group in /sources with 11 updates
Bumps the npm-dependencies group in /sources with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [@actions/artifact](https://github.com/actions/toolkit/tree/HEAD/packages/artifact) | `2.1.4` | `2.1.9` |
| [@octokit/rest](https://github.com/octokit/rest.js) | `20.1.0` | `21.0.1` |
| [@octokit/webhooks-types](https://github.com/octokit/webhooks) | `7.5.0` | `7.5.1` |
| [semver](https://github.com/npm/node-semver) | `7.6.0` | `7.6.3` |
| [typed-rest-client](https://github.com/Microsoft/typed-rest-client) | `1.8.11` | `2.0.2` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `7.5.0` | `7.11.0` |
| [eslint-plugin-github](https://github.com/github/eslint-plugin-github) | `4.10.2` | `5.0.1` |
| [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) | `27.9.0` | `28.7.0` |
| [prettier](https://github.com/prettier/prettier) | `3.2.5` | `3.3.3` |
| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.1.2` | `29.2.4` |
| [typescript](https://github.com/Microsoft/TypeScript) | `5.4.3` | `5.5.4` |

Updates `@actions/artifact` from 2.1.4 to 2.1.9
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/artifact/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/artifact)

Updates `@octokit/rest` from 20.1.0 to 21.0.1
- [Release notes](https://github.com/octokit/rest.js/releases)
- [Commits](https://github.com/octokit/rest.js/compare/v20.1.0...v21.0.1)

Updates `@octokit/webhooks-types` from 7.5.0 to 7.5.1
- [Release notes](https://github.com/octokit/webhooks/releases)
- [Commits](https://github.com/octokit/webhooks/compare/v7.5.0...v7.5.1)

Updates `semver` from 7.6.0 to 7.6.3
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.0...v7.6.3)

Updates `typed-rest-client` from 1.8.11 to 2.0.2
- [Release notes](https://github.com/Microsoft/typed-rest-client/releases)
- [Commits](https://github.com/Microsoft/typed-rest-client/compare/v1.8.11...v2.0.2)

Updates `@typescript-eslint/parser` from 7.5.0 to 7.11.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)

Updates `eslint-plugin-github` from 4.10.2 to 5.0.1
- [Release notes](https://github.com/github/eslint-plugin-github/releases)
- [Commits](https://github.com/github/eslint-plugin-github/compare/v4.10.2...v5.0.1)

Updates `eslint-plugin-jest` from 27.9.0 to 28.7.0
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.9.0...v28.7.0)

Updates `prettier` from 3.2.5 to 3.3.3
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.5...3.3.3)

Updates `ts-jest` from 29.1.2 to 29.2.4
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.1.2...v29.2.4)

Updates `typescript` from 5.4.3 to 5.5.4
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.3...v5.5.4)

---
updated-dependencies:
- dependency-name: "@actions/artifact"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-dependencies
- dependency-name: "@octokit/rest"
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: npm-dependencies
- dependency-name: "@octokit/webhooks-types"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-dependencies
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-dependencies
- dependency-name: typed-rest-client
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: npm-dependencies
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-dependencies
- dependency-name: eslint-plugin-github
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-dependencies
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-dependencies
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-dependencies
- dependency-name: ts-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-dependencies
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 08:51:50 -06:00
daz add58192d1 Improve parameter description for 'cache-cleanup' 2024-08-05 10:54:56 -06:00
Daz DeBoerandGitHub 9edf610422 Update RELEASING.md for v4 2024-08-04 15:14:38 -06:00
daz b1833c4c90 Account for invalid wrapper jar 2024-08-03 16:51:41 -06:00
daz 895252588e Update docs for v4 release 2024-08-03 16:39:51 -06:00
daz af1da67850 Prevent concurrent jobs in integ-test-full 2024-08-03 15:54:44 -06:00
daz f8ba43cf0a Better names for suite workflows 2024-08-03 15:10:49 -06:00
daz bcd07e6643 Refactor integ-tests into suites
- Extract 2 suites to make it possible to reduce concurrency
- Add separate workflow for integ-test and integ-test-full
2024-08-03 14:56:37 -06:00
daz d74ee73e9f Refactor integ-tests
- Include test name in all job names
- Remove cache key delegation as it is unused
2024-08-03 14:56:37 -06:00
Daz DeBoerandGitHub 07190022f8 Improve error messages for min-wrapper-count (#321) 2024-08-02 15:56:14 -06:00
daz ac3aebda93 Improve error messages for min-wrapper-count
- Specific message when no wrappers are found
- Better message when wrapper count is less than configured

Fixes #284
2024-08-02 15:51:41 -06:00
daz d473db0899 Add tests for wrapper-validation with insufficient wrappers
- Test min-wrapper-count greater than wrappers
- Test caswrapper-validation with insufficient wrappers
2024-08-02 15:50:28 -06:00
Daz DeBoerandGitHub 06905c7a0f Enable wrapper-validation by default in setup-gradle (#318) 2024-08-01 11:04:20 -06:00
daz 73f1290de7 Improve docs linked for wrapper-validation failure 2024-08-01 10:59:51 -06:00
daz b6395da67c Cache validated checksums for later executions
The most common case for validation will be that the wrapper jars are unchanged
from a previous workflow run. In this case, we cache the validated wrapper
checksums to minimise the work required on a subsequent run.

Fixes #172
2024-08-01 10:52:36 -06:00
daz ce4c3a6c5e Move wrapper-validation into common setup code 2024-08-01 10:52:36 -06:00
daz b644be617f Enable wrapper validation by default
- Add 'allow-snapshot-wrappers' input parameter
- Default 'validate-wrappers' to 'true'

Fixes #12
2024-08-01 10:51:02 -06:00
daz 7179909719 Verify wrappers for distribution-snapshots
By slurping the checksum URLs from https://services.gradle.org/distributions-snapshots/
we can include these unpublished wrapper checksums in validation.

Fixes #281
2024-07-31 21:26:55 -06:00
daz c01aea0cb4 Introduce cheerio for fast HTML querying 2024-07-31 21:26:55 -06:00
daz fe594a580d Group cache-cleanup log messages for clarity 2024-07-31 21:25:22 -06:00
daz 53f2a5657b Add newline to args message 2024-07-31 13:22:03 -06:00
daz 1a11891cfe Add error to job summary 2024-07-22 09:30:39 -06:00
daz fae6382622 Fail the build when arguments parameter is used 2024-07-22 09:30:39 -06:00
Daz DeBoerandGitHub 81b4ac7741 Fix typo 2024-07-22 07:21:54 -06:00
daz c9872874b0 Segregate cache key for quick and full integtest 2024-07-21 14:38:05 -06:00
daz 7bb45b1dbd Finish enabling cache-cleanup by default
- Add deprecation warning for `gradle-home-cache-cleanup`
- Change default for `dependency-submission` to `cache-cleanup: on-success`
- Update documentation for changed default
2024-07-21 14:19:54 -06:00
Daz DeBoerandGitHub 2289da045c Introduce dependency graph params (#304)
Fixes #193
2024-07-19 19:40:42 -06:00
daz e6688f31b8 Include RUNNER_ARCH in cache key
Previously, including RUNNER_OS was enough to prevent leaking incompatible
content between Gradle User Homes. With the introduction of macos-14,
we now need to differentiate between different runner architectures as well.

Fixes #138
2024-07-19 19:24:50 -06:00
Daz DeBoerandGitHub 46308b920a Document dependency verification requirements
Fixes #256
2024-07-19 19:24:12 -06:00
daz 7387edbbb3 Add more input parameters for dependency-graph generation
- dependency-graph-include-projects
- dependency-graph-exclude-projects
- dependency-graph include-configurations
- dependency-graph-exclude-configurations
2024-07-19 17:22:07 -06:00
daz 9e459adb11 Add 'dependency-graph-report-dir' input parameter 2024-07-19 17:21:10 -06:00
Daz DeBoerandGitHub 8e4868ab4a Prepare for v4 release (#303)
Resolves #297
Resolves #26
2024-07-19 17:13:42 -06:00
daz 5acdee61f0 Make cache-cleanup compatible with cache-write-only 2024-07-19 16:16:59 -06:00
daz 32f9239e2c Remove the undocumented 'dependency-graph: clear' option 2024-07-19 16:16:13 -06:00
daz 12cb23c359 Enable cache-cleanup 'on-success' by default
Fixes #26
2024-07-19 15:28:39 -06:00
daz 238a3da6f4 Remove tests for deprecated features 2024-07-19 15:15:03 -06:00
daz 2041ce6ab1 Fail on delegation from legacy actions 2024-07-19 15:12:40 -06:00
daz ded8009fcf Remove deprecated input parameters 2024-07-19 15:12:40 -06:00
Daz DeBoerandGitHub 4b56f19bda Use pre-installed Gradle when available (#301)
Fixes #270
2024-07-19 14:13:59 -06:00
daz 4576973cce Test provision with more Gradle versions
Include Gradle 8.8 since it is the pre-installed version on Windows runners.
2024-07-19 14:05:33 -06:00
daz 5d7c18409c Use pre-installed Gradle when version matches
By executing Gradle on the PATH, we can avoid downloading and installing
a Gradle version that is already available on the runner.

Fixes #270
2024-07-19 13:46:56 -06:00
daz 7da993afd5 Add 'which' NPM library 2024-07-19 13:46:55 -06:00
daz de6862d826 Use bash to ensure env vars are expanded 2024-07-19 12:59:38 -06:00
daz 917439d87d Always set the GRADLE_USER_HOME env var 2024-07-19 11:55:34 -06:00
Daz DeBoerandGitHub 514ac344fc Use faster D: drive on windows for Gradle User Home and Gradle downloads (#299)
Fixes #290
2024-07-19 11:07:34 -06:00
daz f8aa3ed8b4 Use faster D: drive for Gradle User Home on Windows 2024-07-19 10:04:41 -06:00
daz b175189376 Download and install Gradle distributions into tmpdir 2024-07-19 09:14:37 -06:00
daz e7f9f25d86 Delete excluded paths on restore Gradle Home
Fixes #296
2024-07-19 09:05:31 -06:00
Daz DeBoerandGitHub 7a630bc41b Disable cache-cleanup on config-cache hit (#295)
Fixes #19
2024-07-18 22:32:30 -06:00
daz a77cb2b0f8 Add test for no cache-cleanup with config-cache hit 2024-07-18 22:25:59 -06:00
daz 54f7dc55a5 Adapt for new structure of build results 2024-07-18 22:25:58 -06:00
daz 579a013225 Capture config-cache hit in build results 2024-07-18 22:25:58 -06:00
daz 94355bbb2f Split build-results and build-scan capture into separate files 2024-07-18 22:25:58 -06:00
daz 6d20c16462 Use settingsEvaluated in preference to projectsEvaluated in init-script 2024-07-18 22:25:53 -06:00
Daz DeBoerandGitHub 723ca4de01 Caching improvements (#294)
- Better reporting of cache status in Job Summary (including cache
cleanup)
- Allow cache cleanup to be skipped when Gradle builds fail
- Refactoring
2024-07-18 11:33:36 -06:00
daz 72dde7ef1e Move action entry-point sources 2024-07-18 11:09:54 -06:00
daz 3083f01451 Use new cache-cleanup param in integtest 2024-07-17 22:47:46 -06:00
daz 27dea2df09 Allow better control over cache-cleanup
Adds new 'cache-cleanup' parameter with 3 settings: 'never', 'on-success' and 'always'.
This gives users more control over whether cache cleanup should occur.

Fixes #71
2024-07-17 20:36:33 -06:00
daz 91a526b647 Refactor BuildResults 2024-07-17 20:35:14 -06:00
daz d92de28b80 Improve cache reporting
- More succinct messages for cache-read-only and cache-disabled
- Report on cache-cleanup enabled/disabled status
2024-07-17 20:29:57 -06:00
daz 8d318190ad Add better explanation for cache status
- Clarify default settings for cache-read-only
- Explain why cache was disabled or read-only
- Provide links to documentation in Job Summary

Fixes #255
2024-07-17 15:17:09 -06:00
daz a025cbe7ec Don't run test on windows 2024-07-16 22:43:22 -06:00
Daz DeBoerandGitHub 4a315dceb2 Isolate 'dependency-submission' action from 'setup-gradle' (#293) 2024-07-16 22:12:40 -06:00
daz bb7a843511 Reset dependency-graph after submission
Fixes #204
2024-07-16 21:15:51 -06:00
daz 9a57bcca96 Add test for combining setup-gradle and dependency-submission 2024-07-16 21:15:30 -06:00
daz 22818445b3 Restrict download-and-submit to selected file 2024-07-16 21:15:29 -06:00
Daz DeBoerandGitHub dff3ef9b8d Only fetch checksums for unknown wrapper versions (#292)
The checksum values for most wrapper versions are hard-coded into the
action. These known checksum values are first used for validation: only
if none of the known values work do we download checksums.

Previously, we blindly downloaded all of the checksum values in this
case: we now only download the checksums for versions that are not in
our "known" set.

Fixes #171
2024-07-16 13:04:57 -06:00
Daz DeBoerandGitHub 01254b3eaa Add additional references to dependency-submission docs
Fixes #276
2024-07-15 16:21:32 -06:00
Daz DeBoerandGitHub ff865cb801 Upload dependency graph on submission failure (#291) 2024-07-15 12:47:06 -06:00
daz c3acd19a4a Update to Gradle 8.9 2024-07-14 08:12:33 -06:00
daz 87bf5ca2ea Update DV plugin versions that were missed by automation 2024-07-05 11:33:00 -06:00
Daz DeBoerandGitHub 81b4ece56a Clarify that tags are isolated in cache entries 2024-07-02 12:15:24 -06:00
Daz DeBoerandGitHub dad038d88d Use Gradle 8.8 features for Gradle Home cleanup (#272)
Fixes #33
Fixes #24
Fixes #46 
Fixes #169
2024-06-28 13:46:10 -06:00
daz 621f3b3f79 Run cache-cleanup build with --info
Resolves #169
2024-06-28 13:25:56 -06:00
daz 4022faad7e Fix integ-test-cache-cleanup.yml for running on act 2024-06-28 13:21:54 -06:00
daz 95ef72241e Use Gradle 8.8 features for cleanup
Gradle 8.8 introduces new features that allow us to avoid using
timestamp manipulation to force the cleanup of the Gradle User Home directory.

This solution is simpler and more robust, but relies on Gradle 8.8+ always being
used for the cache cleanup operation.

Fixes #24
2024-06-28 13:06:23 -06:00
daz 169bec5d8b Provision latest Gradle for cache-cleanup
To cleanup Gradle User Home, a Gradle build must be executed.
Newer Gradle versions are able to cleanup the home directories of older versions,
but not vice-versa.

With this change, the latest version of Gradle is automatically provisioned
in order to run Gradle User Home cleanup. This ensures a consistent version of
Gradle is used for cleanup, and fixes #33 where Gradle is not pre-installed on
a custom runner.
2024-06-28 12:39:09 -06:00
Daz DeBoerandGitHub b9abb7b195 Use latest dependency graph plugin (#269) 2024-06-27 19:42:01 -06:00
Daz DeBoerandGitHub c04155e2ca Remove instructions for merging Dependabot PRs
These are no longer required, since the bot will update the `dist` directory.
2024-06-27 19:32:31 -06:00
daz 1da1cc97d5 Rename Develocity secret 2024-06-27 18:49:52 -06:00
Daz DeBoerandGitHub 719985db3d Simplify requesting short-lived Develocity access tokens (#259)
- Always fetch a token for every hostname in the access key
- Use any tokens that are successfully fetched
- Retain access key if no tokens can be fetched
2024-06-14 21:18:08 -06:00
daz 8dbe9a3802 Update DV access key regex to be more selective
This should address the code-scanning alert
  https://github.com/gradle/actions/security/code-scanning/1
2024-06-13 13:35:19 -06:00
daz 30c82f0068 Fail on invalid boolean for Develocity inputs 2024-06-13 13:31:25 -06:00
daz e3bc05f224 Run CodeQL on PRs 2024-06-13 13:15:23 -06:00
daz 485ea107b7 Run CodeQL on dev/* branches 2024-06-13 13:01:56 -06:00
daz 2db3ae936e Update to Gradle 8.8 2024-06-13 09:03:40 -06:00
Daz DeBoerandGitHub ea14aa9caf Dependency updates (#222)
- Bump to com.gradle.develocity plugin v3.17.3
- Bump JVM dependencies in sample projects
2024-05-11 07:45:47 -06:00
daz 941b289d84 Avoid running Gradle 3.5.1 on MacOS where Java 8 is not available 2024-04-25 21:23:15 +01:00
Daz DeBoerandGitHub bce7daca54 Improve build scan badge readability with long tasks (#200)
Improve readability of build scan when requested tasks is very long, as
agreed in #175. HTML diff for each case of job summary is clearer in
cd62d9c9ef.

- Ensure a minimum size for the badge, at least the size of "Build
scan®", by preventing a line break with `&nbsp;`
- Reduce the size of the badge by tweaking the inner text

Also fix a typo in the build shell script.
2024-04-25 21:22:36 +01:00
daz 11eaed9738 Avoid Java 8 since it is not available on MacOS runners 2024-04-25 20:17:16 +01:00
daz a772c14b33 Avoid updating real dependency graph in tests 2024-04-25 11:19:43 +01:00
daz 7763d71170 Set the report dir for download-and-submit
Fixes #196
2024-04-25 11:19:43 +01:00
daz d124ec149f Retain and log stacktrace for submission errors 2024-04-19 10:24:45 -06:00
Daz DeBoerandGitHub c198d84863 Support custom report dir for dependency-submission (#189)
If the `DEPENDENCY_GRAPH_REPORT_DIR` var is set, use this value when locating dependency-graph files to upload/submit.

Fixes #188
2024-04-18 13:40:41 -06:00