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
2bb20697b4
Rename config-cache jobs for clarity
2022-05-29 09:32:24 -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
e3ceb00204
Fix typo in worklow step
2022-05-29 08:48:46 -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
26ea4afa08
Use kotlin-dsl sample to demo failure
2022-05-24 16:51:53 +02:00
Daz DeBoer
dc49976071
Add manual test to demonstrate failing build
2022-05-24 15:00:47 +02:00
Daz DeBoer
fb99e07d58
Bump GE plugin to v3.10.1
2022-05-23 07:09:58 +02:00
Daz DeBoer
9f1e4d5588
Allow 10 Dependabot PRs in parallel
2022-05-15 10:16:19 -06:00
Daz DeBoer
78039b1f7f
Bump com.gradle.enterprise from 3.9 to 3.10
2022-04-19 16:38:47 -06:00
Daz DeBoer
503956ef9b
Merge pull request #235 from gradle/wrapperbot/gradle-build-action-sample-gradle-plugin/gradle-wrapper-7.4.2
...
Bump Gradle Wrapper from 7.4.2 to 7.4.2 in /.github/workflow-samples/gradle-plugin
2022-04-05 10:07:17 -06:00
Daz DeBoer
3ad927eab1
Merge pull request #236 from gradle/wrapperbot/gradle-build-action-sample-groovy-dsl/gradle-wrapper-7.4.2
...
Bump Gradle Wrapper from 7.4.2 to 7.4.2 in /.github/workflow-samples/groovy-dsl
2022-04-05 10:06:57 -06:00
Daz DeBoer
1b2936fed4
Merge pull request #237 from gradle/wrapperbot/gradle-build-action-sample-java-toolchain/gradle-wrapper-7.4.2
...
Bump Gradle Wrapper from 7.4.2 to 7.4.2 in /.github/workflow-samples/java-toolchain
2022-04-05 10:06:46 -06:00
bot-githubaction
191094ccb5
Bump Gradle Wrapper from 7.4.2 to 7.4.2 in /.github/workflow-samples/kotlin-dsl
2022-04-05 16:03:03 +00:00
bot-githubaction
a748ca2efa
Bump Gradle Wrapper from 7.4.2 to 7.4.2 in /.github/workflow-samples/java-toolchain
2022-04-05 16:02:39 +00:00
bot-githubaction
501cd3b4dc
Bump Gradle Wrapper from 7.4.2 to 7.4.2 in /.github/workflow-samples/groovy-dsl
2022-04-05 16:02:22 +00:00
bot-githubaction
9b724c303e
Bump Gradle Wrapper from 7.4.2 to 7.4.2 in /.github/workflow-samples/gradle-plugin
2022-04-05 16:02:03 +00:00
Daz DeBoer
3c3fdfcc0c
Moved workflow samples out of .github/workflows
...
The `.github/workflows` directory has additional permissions attached, preventing these
files from being by the Upgrade Gradle Wrapper plugin.
2022-04-05 09:55:31 -06:00
Daz DeBoer
cde360986c
Improve sample for build-scan comment on PR
2022-04-04 15:12:03 -06:00
Daz DeBoer
72e45fe25b
Only run workflows when relevant files change
2022-04-02 12:51:23 -06:00
Daz DeBoer
cfe0b72a03
Bump to GE plugin v3.9
2022-04-02 12:45:18 -06:00
Daz DeBoer
a6bb0f87a3
Reformat Groovy to trigger Dependabot
2022-04-02 12:40:57 -06:00
Daz DeBoer
a1bb3349df
Bump Jnit version in samples
2022-04-02 12:37:16 -06:00
Daz DeBoer
aabb2db775
Move workflow samples under .github
2022-04-02 12:33:04 -06:00
Daz DeBoer
01def677bf
Ensure all Gradle samples are checked by Dependabot
2022-04-02 11:34:54 -06:00
Daz DeBoer
73602de30a
Update test for wrapper upgrade
2022-04-02 11:20:31 -06:00
Daz DeBoer
92de6969aa
Configure dependabot to update Gradle plugins
...
The test Gradle sample apps reference plugins, and it's good to keep these
updated (particularly the GE plugin).
Minor changes to the build scripts were required to satisfy Dependabot.
2022-03-18 06:41:31 -06:00
Daz DeBoer
53af4d4f57
Fix check for config-cache usage
...
Now that environment variable reads are auto-detected by Gradle 7.4,
we need a different mechanism to check that the configuration cache is
being used successfully.
2022-03-17 11:15:38 -06:00
bot-githubaction
b10e7caf66
Bump Gradle Wrapper 7.4.1 in __tests__/samples
2022-03-16 13:18:21 -06:00
Daz DeBoer
3f03131b48
Allow members to push commits without sign-off
2022-03-16 13:17:50 -06:00
Daz DeBoer
adcc4faa55
Prevent concurrent running of integ-test workflows
2022-03-14 13:28:54 -06:00
Daz DeBoer
800e52f373
Run all tests on macos-latest
2022-02-03 09:11:06 -07:00
Daz DeBoer
bc3340afc5
Tell dependabot to ignore @types/node
2022-01-27 09:07:17 -07:00
Daz DeBoer
5f1def5815
Enable dependabot updates
2022-01-27 08:43:59 -07:00
Daz DeBoer
08d5b40ca5
Add experimental support for 'cache-write-only'
...
There may be cases where it a "fresh" cache entry would be beneficial,
for example if the Gradle User Home cache entry grows over time.
This setting would run the build as if no prior cache entry exists.
2022-01-20 15:04:11 -07:00
Daz DeBoer
4f616f683a
Include github.run_attempt in test cache keys
...
This change to the integration tests should properly isolate multiple runs of the same job.
Previously, some jobs would fail if you attempted to re-run them via the UI, because the cache
entries would be re-used from the previous run.
2022-01-18 10:52:22 -07:00
Daz DeBoer
755aebc7d1
Test build-scan capture with pre-existing GUH
2022-01-17 14:44:31 -07:00
Daz DeBoer
97a4d7a5fd
Test build-scan capture works with cache-disabled
2022-01-17 14:29:11 -07:00
Daz DeBoer
a7260b277e
Specify mandatory 'distribution' arg for setup-java
2022-01-17 14:28:53 -07:00
Daz DeBoer
f4e053dda1
Upgrade to reference actions/setup-java@v2
...
- Update all references in README.md
- Update version used in `pr-build-scan-comment`
- Discourage the use of `cache: gradle` with `setup-java@v2`
2022-01-16 16:18:09 -07:00
Benedikt Ritter
a7c463b44a
Update to latest version of actions/github-script
...
See https://github.com/marketplace/actions/github-script#breaking-changes-in-v5
* Update docs to latest github-script action version
* Update CI build to latest GitHub API
2022-01-16 15:45:15 -07:00
Daz DeBoer
76ea8a76b2
Treat configuration-cache as an extracted entry
...
Instead of using a fallback strategy to locate a configuration-cache entry
based on the current job and git SHA, these entries are now keyed based on their
file content with the keys persisted in the primary Gradle User Home entry.
This removes the chance of having a configuration-cache entry restored that is
incompatible with the restored Gradle User Home state, and makes the logic easier
to understand.
This change involved a fairly major refactor, with the CacheEntryExtractor being
split out from the primary cache implementation, and adding a separate extractor
implementation for configuration-cache.
2021-12-30 16:03:02 -07:00
Daz DeBoer
12fc52a49a
Combine java-toolchain entry definitions
...
- Remove configuration parameter for cache-entry-definitions. This allows richer modelling of extracted entries.
- Include both *.zip and *.tar.gz in entry definition for java-toolchains.
2021-12-30 16:03:02 -07:00
Daz DeBoer
c61f5d87b4
Test java-toolchain cache
2021-12-17 21:10:31 -07:00
Daz DeBoer
c208b4c1f7
Test caching with gradle-plugin project
2021-12-17 20:54:04 -07:00
Daz DeBoer
eda0038770
Reduce the number of automated comments left on PR
2021-12-17 10:49:41 -07:00
Daz DeBoer
ed5b4ae5dc
Verify GUH restore combined with Gradle execution
2021-12-17 10:44:29 -07:00
Daz DeBoer
e977669c8c
Update most test workflows to separate config from execution
2021-12-17 10:29:59 -07:00
Daz DeBoer
69aad1f173
Test config-cache support for multiple builds in one job
2021-12-08 15:09:26 -07:00
Daz DeBoer
f344e25b84
Attempt to reduce duplicate workflows on PR creation
2021-12-08 14:20:13 -07:00
Daz DeBoer
37f2880a8a
Cache wrapper zips and generated jars individually
...
Using a single cache entry for all files of a type is necessary to avoid
overloading the cache service. However, this mechanism is not very efficient
for certain artifacts like wrapper zips and generated-gradle-jars, where the
same individual files are often shared between different jobs.
With this change, any configured file patterns that do not end in '*' will
be cached as individual files. At this time this includes downloaded wrapper
zips and generated-gradle-jars.
Fixes #78
2021-12-08 14:05:13 -07:00
Daz DeBoer
aa9bf7774e
Add build-scan comment to any PRs
2021-12-08 13:07:51 -07:00
Daz DeBoer
ed2ff1a448
Use a matrix for testing Gradle versions
2021-12-08 10:04:24 -07:00
Jonathan Leitschuh
3812292b26
Add CodeQL Analysis ( #114 )
2021-11-02 09:56:02 -06:00
Daz DeBoer
079e4844d6
Split tests for caching
...
- Separate testing of Gradle Home caching from configuration-cache caching
- Add test for configuration-cache when Gradle Home is not fully restored
2021-10-29 09:34:35 -06:00
Daz DeBoer
4ebd000afd
Bundle all downloaded dependency files
...
Previously, only .jar files were bundled, with other files (modules, POMs, zips, etc)
being left in Gradle User Home. All downloaded files are now included in the bundle.
Fixes #100
2021-10-29 08:03:03 -06:00
Daz DeBoer
e3ada7e5c2
Use multiline input parameters instead of JSON input
...
The `gradle-home-cache-includes` and `gradle-home-cache-excludes` parameters were initially implemented
as JSON string inputs. This makes these inputs non-idiomatic and easier to get wrong.
This change converts them to multi-line input parameters.
Fixes #106
2021-10-29 07:29:57 -06:00
Daz DeBoer
0eb881f067
Adapt workflows to renamed parameters
2021-10-27 16:07:24 -06:00
Daz DeBoer
cba1833dde
Run test builds on Ubuntu and Windows
...
- Remove MacOS since the agents are current flaky
- Add Windows to a few more test pipelines
2021-10-21 12:08:17 -06:00
Daz DeBoer
614d8770a4
Add test for cache configuration
2021-10-21 11:13:09 -06:00
Daz DeBoer
8b1f1a3817
Add test for execution when no bundles are restored
2021-10-15 13:29:09 -06:00
Daz DeBoer
d1ab42cddf
Document support for multi-line arguments
...
Fixes #88
2021-10-15 12:24:41 -06:00
Daz DeBoer
422726cec5
Add test for multi-line input arguments
2021-10-15 12:20:01 -06:00
Daz DeBoer
0cf00ed767
Fix test for release-candidate
...
Since this is an ever-changing version, this fix removes the `gradleVersionCheck` from the invocation.
2021-10-14 10:48:44 -06:00
Daz DeBoer
6ff498182a
Add checks for build scan links
2021-09-29 15:10:39 -06:00
Daz DeBoer
9b7c81f8f6
Test execution with older Gradle versions
2021-09-29 13:34:05 -06:00
Daz DeBoer
17f624cb5b
Rename 'basic' sample to 'groovy-dsl'
2021-09-28 20:31:11 -06:00
Daz DeBoer
5576baa56b
Merge pull request #83 from gradle/dd/v2
...
Adapt paths to differing Gradle User Home
2021-09-27 22:08:40 -06:00
Daz DeBoer
1026c62889
Only run failure-cases workflow on manual trigger
2021-09-27 22:05:23 -06:00
Daz DeBoer
e0d37eb073
Workflow to test with custom GRADLE_USER_HOME
2021-09-27 19:48:26 -06:00
Daz DeBoer
bdd89aa34f
Refactored workflows
...
- Improve workflow names
- Split execution testing from cache testing
2021-09-27 19:33:22 -06:00
Daz DeBoer
656ad4b5f2
Move continue-on-error into the step definition
...
Hopefully this will allow GitHub to ignore the failure.
2021-09-15 17:57:43 -06:00
Daz DeBoer
cca55d0890
Fail action execution on unhandled errors
...
Without this, the error logs contain an "UnhandledPromiseRejectionError"
but the action is reported as succeeding.
2021-09-14 07:48:06 -06:00
Daz DeBoer
3390540145
Simplify setting caches to disabled or read-only
2021-09-13 11:04:42 -06:00
Daz DeBoer
1c72a31463
Allow cache debug logging to be selectively enabled
...
- Move more messages out of main 'info' log
- Only log cache entry size when debugging
- Process cache entries sequentially when debugging
2021-09-13 10:52:09 -06:00
Daz DeBoer
d5cd9d86a1
Split the 'prod' workflow up into different isolated workflows
...
This is required to ensure that cache entries are namespaced correctly
for the integration tests.
2021-09-12 12:17:05 -06:00
Daz DeBoer
b5a08466b4
Add kotlin-dsl sample to prod workflow tests
2021-09-12 10:30:49 -06:00
Daz DeBoer
4d37378696
Consolidate cache-enabled options
2021-09-05 21:38:33 -06:00
Daz DeBoer
777a6fc967
Generate cache key based on Job invocation
...
Attempt to capture as much context as possible about the job run
to generate a unique cache key. Unfortunately much of the matrix context
is not available to the action implementation.
2021-09-05 21:35:17 -06:00
Daz DeBoer
436390bd4e
Test coverage: Verify configuration-cache is restored with project-dot-gradle
2021-08-27 12:53:02 -06:00
Daz DeBoer
a587e93714
Test coverage: Verify local build cache is restored with gradle-user-home
2021-08-27 12:53:02 -06:00
Daz DeBoer
75e00ee3d1
Test coverage: Verify dependency caching by running offline build
2021-08-27 12:53:02 -06:00
Daz DeBoer
c01af7a6f6
Test coverage: verify correct Gradle version is being used
2021-08-27 12:53:02 -06:00
Daz DeBoer
b85ac67c9a
Seed the cache key with workflow id in CI
...
This will eliminate cache entries from previous workflow runs, allowing
us to test cache functionality in isolation. If the `CACHE_KEY_SEED` environment
variable is not set, this will have no impact.
2021-08-27 12:52:01 -06:00
Daz DeBoer
fa0c026e07
Always execute Gradle with --no-daemon
...
The Gradle daemon is not useful for ephemeral builds, and the process
can hold file locks which interfere with cache entry generation.
In the case where multiple Gradle invocations occur in the same job,
we could provide a way for users to override this behaviour, taking care
of stopping any daemon process at the end of the job.
2021-08-27 12:21:46 -06:00
Daz DeBoer
986024f0b7
Adapt README and workflow for new caching
2021-08-26 17:25:50 -06:00
Daz DeBoer
d9cc0aeccf
Remove old caching code
2021-08-24 12:54:21 -06:00
Daz DeBoer
a148b21183
Improve prod workflow
...
- Use a separate job to test read-only cache
- Use dependency jobs to avoid cache race conditions
2021-08-22 14:42:01 -06:00
Daz DeBoer
a693ccda4b
Allow use of caches 'read-only'
...
To avoid evicting useful entries, some pipeline may benefit from using existing
cache entries without writing any changes back to the cache.
Fixes #62
2021-08-22 14:28:34 -06:00
Daz DeBoer
543cacb256
Allow manual trigger of prod workflow
2021-08-20 14:00:30 -06:00
Paul Merlin
41aebc770d
Fix typo in test workflow
...
Signed-off-by: Paul Merlin <paul@gradle.com>
2021-07-27 08:22:05 +02:00
Daz DeBoer
1f57b4dd2d
Re-add workflow jobs for dependencies and configuration caches
2021-07-26 15:45:00 -06:00
Daz DeBoer
b9684c0cf5
Prefer ‘release-candidate’ instead of ‘rc’
...
This makes the version alias match other places where we reference a release candidate version.
The 'rc' alias is still supported, but emits a deprecation warning.
2021-07-26 14:54:59 -06:00
Daz DeBoer
5423935c9b
Deprecate the 'wrapper-directory' input and recommend 'gradle-executable' instead
...
Use of a wrapper in a non-standard directory is uncommon, and is effectively handled
by referencing the `gradlew` script as the `gradle-executable`.
2021-07-26 14:54:59 -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
f0c6ac01d3
Add test for gradle-executable
parameter
...
Use matrix to allow different script suffix on windows
2021-07-06 13:29:55 -06:00
Daz DeBoer
63fea55da4
Add a very-limited ‘no-wrapper’ test Gradle build
...
Will use this for testing Gradle execution with different versions and mechanisms.
2021-07-06 13:29:55 -06:00
Daz DeBoer
26b92e3f5c
Separate unit-test data from integ-test samples
...
- Upgraded `samples/basic` to use latest Gradle version.
2021-07-06 13:29:55 -06:00
Daz DeBoer
643092d2fc
Ensure that test invocations are targeted at a specific use-case
...
- Remove the 'gradle --stop' step from the prod workflow.
We either need to stop all instances started, or rely on GitHub to clean up processes on completion.
- Remove configuration-cache and dependencies-cache from basic tests. We will later need to add
tests invocations specific for these features.
2021-07-06 13:29:55 -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
Paul Merlin
c8c53f54bb
Let CI exercises using latest Gradle RC
2020-09-13 13:25:31 +02:00
Paul Merlin
053f389907
CI prod check workflow stops Gradle daemon at the end
...
to allow for dependency caching to work on windows
2020-06-15 20:08:27 +02:00
Paul Merlin
4f9b5202aa
Faster CI
2020-06-15 20:03:30 +02:00
Paul Merlin
aefd8348d2
Enable configuration cache on CI
2020-06-15 16:03:04 +02:00
Paul Merlin
f2de61db4e
Enable configuration cache on CI
2020-06-15 15:58:50 +02:00
Paul Merlin
806543fb3a
Enable dependencies cache on CI
2020-06-15 15:57:47 +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
b35e929b1d
Simplify CI
2020-06-14 12:36:06 +02:00
Paul Merlin
83e6d042d7
Run CI on linux, macos and windows
2020-06-14 12:22:21 +02:00
Paul Merlin
2bf5eec3b6
Test dist download on CI
2020-06-13 14:33:32 +02:00
Paul Merlin
5c61ab77ec
Add back CI check for uncommited changes
2020-06-13 13:46:53 +02:00
Paul Merlin
b55d63f1f8
Refine CI workflows
2020-06-13 13:17:04 +02:00
Paul Merlin
8f6be44bf5
Split dev/prod CI workflows
2020-06-13 13:14:52 +02:00
Paul Merlin
469bf6123e
Fix CI
2020-06-13 13:10:37 +02:00
Paul Merlin
9cbb22e130
Test something on CI
2020-06-13 13:09:06 +02:00
Paul Merlin
ab09ae8fad
Refine CI
2020-06-13 12:48:35 +02:00
Paul Merlin
1a6a8efda2
Refine CI
2020-06-13 12:47:09 +02:00
Paul Merlin
8ba9907b46
Initial commit
2019-09-20 23:06:59 +02:00