Commit Graph
100 Commits
Author SHA1 Message Date
Daz DeBoer a8d44c9749 Rename 'test/test-init-script' to 'test/init-scripts' 2022-06-11 09:32:50 -06:00
Daz DeBoerandGitHub 6125b490f2 Merge pull request #325 from gradle/dependabot/gradle/dot-github/workflow-samples/no-wrapper/com.gradle.enterprise-3.10.2
Bump com.gradle.enterprise from 3.10.1 to 3.10.2 in /.github/workflow-samples/no-wrapper
2022-06-09 22:30:09 -06:00
Daz DeBoerandGitHub f75a77b009 Merge pull request #324 from gradle/dependabot/gradle/dot-github/workflow-samples/kotlin-dsl/com.gradle.enterprise-3.10.2
Bump com.gradle.enterprise from 3.10.1 to 3.10.2 in /.github/workflow-samples/kotlin-dsl
2022-06-09 22:29:58 -06:00
Daz DeBoerandGitHub 3510b43886 Merge pull request #322 from gradle/dependabot/gradle/dot-github/workflow-samples/no-wrapper-gradle-5/com.gradle.build-scan-3.10.2
Bump com.gradle.build-scan from 3.10.1 to 3.10.2 in /.github/workflow-samples/no-wrapper-gradle-5
2022-06-09 22:29:45 -06:00
Daz DeBoerandGitHub 61ba2ad220 Merge pull request #323 from gradle/dependabot/gradle/dot-github/workflow-samples/groovy-dsl/com.gradle.enterprise-3.10.2
Bump com.gradle.enterprise from 3.10.1 to 3.10.2 in /.github/workflow-samples/groovy-dsl
2022-06-09 22:29:35 -06:00
Daz DeBoerandGitHub 9355458b6c Merge pull request #321 from gradle/dd/check-for-job-summary-support
Check that job summary support is available
2022-06-09 09:36:42 -06:00
Daz DeBoerandGitHub 4ec1021d58 Merge pull request #315 from gradle/dependabot/npm_and_yarn/jest-28.1.1
Bump jest from 28.1.0 to 28.1.1
2022-06-09 09:36:25 -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 f33d84950e Run verify-outputs on every push to 'main' 2022-06-06 19:04:28 -06:00
Daz DeBoerandGitHub d20c5c0356 Merge pull request #314 from gradle/dependabot/npm_and_yarn/typescript-eslint/parser-5.27.1
Bump @typescript-eslint/parser from 5.27.0 to 5.27.1
2022-06-06 19:01:11 -06:00
Daz DeBoerandGitHub c207cf448f Merge pull request #312 from gradle/dependabot/npm_and_yarn/types/jest-28.1.1
Bump @types/jest from 28.1.0 to 28.1.1
2022-06-06 19:00:47 -06:00
Daz DeBoerandGitHub a534572737 Merge pull request #311 from gradle/dependabot/npm_and_yarn/eslint-plugin-jest-26.5.3
Bump eslint-plugin-jest from 26.4.6 to 26.5.3
2022-06-06 19:00:34 -06:00
Daz DeBoer 33ed11e54c Build outputs 2022-06-06 15:36:40 -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 DeBoerandGitHub e88ed3e650 Update README for v2.2.0 2022-06-06 12:34:02 -06:00
Daz DeBoer de51428ba5 Build outputs 2022-06-06 11:53:30 -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 DeBoerandGitHub 306a7e4bb2 Merge pull request #306 from gradle/dd/user-home
Use java to determine user.home dir
2022-06-05 22:18:36 -06:00
Daz DeBoer c34d4a9731 Build outputs 2022-06-05 22:15:43 -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 4ca4968624 Add test for action in containerized runner 2022-06-05 22:13:03 -06:00
Daz DeBoer fd1882690a Fix test to use custom Gradle User Home 2022-06-05 22:03:47 -06:00
Daz DeBoer 0b5047ec4d Prevent duplicate JSON being written to build-results 2022-06-05 21:55:11 -06:00
Daz DeBoerandGitHub a4a9a30e86 Merge pull request #305 from gradle/dd/stop-gradle-daemons
Allow daemons to run across workflow steps
2022-06-05 18:07:56 -06:00
Daz DeBoer 865c16699a Build outputs 2022-06-05 10:25:29 -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 a7f880172e Use a released version of 'gradle-build-action' for our CI job 2022-06-05 09:06:23 -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 DeBoerandGitHub 44e1837ae3 Merge pull request #304 from gradle/dd/test-init-scripts
Improve init scripts and add test coverage

The build-scan-capture init script will now capture results from builds that do not publish a build-scan, with and without the configuration-cache.

Fixes #292
2022-06-05 00:36:03 -06:00
Daz DeBoer b400dc555d Build outputs 2022-06-05 00:32:29 -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 754892d4ae Add workflow to run init-script tests 2022-06-05 00:27:36 -06:00
Daz DeBoer ea24a0ad75 Add test coverage for build-result-capture init script 2022-06-05 00:27:36 -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 e4ed35bcaf Add test for project-root-capture.init.gradle 2022-06-05 00:25:42 -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 DeBoerandGitHub 14c898b500 Merge pull request #149 from gradle/write-from-default-branch
Default to `cache-read-only` for non-default branches
2022-06-04 11:45:42 -06:00
Daz DeBoer 00cdd4dcf9 Explicitly allow cache-write for test invocations
The `gradle-build-action` test workflows need to write cache entries,
even when run on non-default branches. This change add explicit configuration
to set `cache-read-only: false` when cache writing is required.
2022-06-04 11:39:19 -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 0a36ca9fb8 Use 'cache-read-only' for all but default_branch
Cache entries _written_ from jobs run on a non-default branch will be private
to other jobs for that branch. When development flow involves working on a
feature branch and then merging into 'main', these branch-private cache
entries can result in eviction of other (shared) cache entries generated
for the default branch.

With this change, we make the recommended setup the default, by running
with `cache-read-only: true` for any jobs run on a non-default branch.
These jobs will be able to read cache entries written from the main branch,
but will not write any cache entries.

Fixes #143
2022-06-04 11:19:07 -06:00
Daz DeBoerandGitHub fe92974cdf Merge pull request #303 from gradle/dd/improved-summary
Improve layout and formatting of Job Summary
2022-06-04 11:04:38 -06:00
Daz DeBoer 6aa41b32df Build outputs 2022-06-04 10:57:25 -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
Daz DeBoer 9ab4abd18c Update to latest version of all github actions 2022-06-04 09:26:11 -06:00
Daz DeBoer 85daf96c6d Update development dependencies
- Bump typescript from 4.7.2 to 4.7.3
- Bump ts-jest from 28.0.3 to 28.0.4
- Added @types/jest which is now required
- Bump eslint from 8.16.0 to 8.17.0
2022-06-04 09:07:11 -06:00
Daz DeBoerandGitHub 8b56c4af06 Merge pull request #302 from gradle/fix-config-cache
Fix save/restore of configuration-cache
2022-06-04 08:57:34 -06:00
Daz DeBoer 4da299730b Build outputs 2022-06-03 13:51:36 -06:00
Daz DeBoer dff0fe1b20 Remove debug output from init script 2022-06-03 13:51:36 -06:00
Daz DeBoer ae74c01440 Use a BuildService to always collect project root
Using `settingsEvaluated` meant that the project root was not recorded
when the build was run with a config-cache hit. This meant that the subsequent
build would not restore the config-cache, resulting in a cache miss.

In order to avoid issues running the init script on older versions of Gradle
the project-collection is extracted into a separate groovy file that is only
applied conditionally on Gradle 7 or higher.
2022-06-03 13:51:36 -06:00
Daz DeBoer cde0632795 Update comment for accuracy 2022-06-03 07:50:08 -06:00
Daz DeBoer 6cc033f2b3 Make build-result-capture script compatible with config-cache 2022-06-03 07:12:23 -06:00
Daz DeBoerandGitHub 8aaf080d68 Merge pull request #296 from gradle/dependabot/npm_and_yarn/typescript-eslint/parser-5.27.0
Bump @typescript-eslint/parser from 5.26.0 to 5.27.0
2022-06-03 05:59:16 -06:00
Daz DeBoerandGitHub 4378b83ae3 Merge pull request #295 from gradle/dependabot/npm_and_yarn/eslint-plugin-jest-26.4.6
Bump eslint-plugin-jest from 26.2.2 to 26.4.6
2022-06-03 05:58:56 -06:00
Daz DeBoerandGitHub d3a78eb55f Merge pull request #298 from gradle/job-summary-table
Add improved Job Summary with build results and caching report
2022-06-02 23:19:52 -06:00
Daz DeBoer f4d1e351c0 Build outputs 2022-06-02 23:17:50 -06:00
Daz DeBoer 7b79b2a752 Report on read-only / write-only cache 2022-06-02 23:16:52 -06:00
Daz DeBoer 143774290e Add more details to cache summary report 2022-06-02 22:39:55 -06:00
Daz DeBoer a9a5bcf180 Move writing of cache report into job-summary.ts 2022-06-02 22:39:09 -06:00
Daz DeBoer f9c8fcf79f Adding caching details to Job Summary 2022-06-02 14:21:10 -06:00
Daz DeBoer 86e82987ba Write job summary in post action
- Save build results in file encoded as JSON
- Read all build results in post action and render as table in job summary
2022-06-02 12:58:49 -06:00
Daz DeBoerandGitHub 5fe4df6233 Merge pull request #297 from gradle/extract-init-scripts
Extract init scripts and state tracking
2022-06-02 12:43:26 -06:00
Daz DeBoer d79b3ba8ae Build outputs 2022-06-02 12:25:11 -06:00
Daz DeBoer 8f3c97e3f1 Extract action state-tracking out of caches.ts 2022-06-02 12:20:01 -06:00
Daz DeBoer d95713bd5d Extract init scripts into resource files 2022-06-02 11:53:33 -06:00
Daz DeBoer bdf9736c53 Add 'npm check' goal to run lint without generating outputs 2022-06-02 11:53:05 -06:00
Daz DeBoer 7e85212f59 Add workflow with several Gradle builds to demo job summary 2022-06-02 11:52:52 -06:00
Daz DeBoer 992ccebeea Only run main workflows when relevant files change 2022-05-29 17:27:11 -06:00
Daz DeBoer c13dc6c789 Fix and re-enable test for save/restore config-cache 2022-05-29 17:27:11 -06:00
Daz DeBoer 5e6af67a5e Fix CI-full-check for renamed workflow 2022-05-29 15:05:31 -06:00
Daz DeBoer e32d23f291 Capitalize to improve ordering 2022-05-29 15:04:12 -06:00
Daz DeBoer a880eab216 More consistent names for workflow jobs 2022-05-29 15:04:11 -06:00
Daz DeBoerandGitHub 6c8fe00271 Fix typo in workflow 2022-05-29 14:49:05 -06:00
Daz DeBoerandGitHub c37c1fb693 Merge pull request #294 from gradle/dd/dpe
Various improvements to CI workflows

- Compose all integ-test workflow executions into a single calling workflow
- Added a 'quick-check' workflow that provides faster feedback on branches other than main
  - Only runs on ubuntu-latest
  - Reuses cache entries from previous runs
  - Builds distribution outputs so that these don't need to be committed during everyday development
- Added a workflow for purging old workflow executions

Together with the fix for #293, these changes fix #291
2022-05-29 14:47:35 -06:00
Daz DeBoer 0c3292abfb Reduce overlap of ci workflows 2022-05-29 14:44:21 -06:00
Daz DeBoer 66050d88b2 Add workflow to purge old workflow runs 2022-05-29 14:32:16 -06:00
Daz DeBoer 1771c6f669 Temporarily disable failing test in quick-check 2022-05-29 14:32:16 -06:00
Daz DeBoer acc77da702 Build distribution when running quick-check workflow
The action requires the generated distribution to committed to the 'dist' directory.
During regular development this step causes a number of problems:
- It's easy to forget to add/commit these generated files.
- It's very difficult/impossible to merge/rebase commits that involve generated files
- These file add unnecessary bulk to the git history

With this change, the quick-check workflow will first build the distribution and then
use the generated output for testing. Building and committing these files will only be
required when merging into the 'main' branch.
2022-05-29 14:25:12 -06:00
Daz DeBoer bdb9f7fd28 Use shorter workflow names 2022-05-29 13:04:26 -06:00
Daz DeBoer f9e15febb7 Restrict quick-check workflow to ubuntu for faster feedback 2022-05-29 13:04:26 -06:00
Daz DeBoer 1ba2a63e58 Fix restore-configuration-cache test workflow
The sequential jobs in the workflow emulate repeated execution of the
same Job, so they work better if given the same job id.
2022-05-29 13:03:24 -06:00
Daz DeBoer c838a38ea1 Combine all integTest workflows into 2 workflow runs
- Workflow to run all integTest workflows, allowing use of prior cache entries
- Workflow that starts with empty cache

Both of these use workflow_call to combine the existing workflows.
2022-05-29 13:03:10 -06:00
Daz DeBoer 2e34e4f80f Build outputs 2022-05-29 11:50:51 -06:00
Daz DeBoer 2bb20697b4 Rename config-cache jobs for clarity 2022-05-29 09:32:24 -06:00
Daz DeBoer 28b774ebdb Allow override of sections of cache key
These internal env vars are designed primarily for testing,
but may also prove useful for folks to experiment with more optimal
caching setups.
2022-05-29 09:32:24 -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 f2bb19b43a Remove downloaded wrapper zips before caching
The wrapper zip files are redundant, and not required after extraction.
Gradle 7.5+ will delete these automatically, but we delete them for older
versions to avoid caching the wrapper distributions twice.

Sinc the `gradle-home-cache-excludes` parameter does not support
wildcards, we remove them explicitly.
2022-05-29 08:49:36 -06:00
Daz DeBoer e3ceb00204 Fix typo in worklow step 2022-05-29 08:48:46 -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
Daz DeBoer 26ea4afa08 Use kotlin-dsl sample to demo failure 2022-05-24 16:51:53 +02:00