-
-
Notifications
You must be signed in to change notification settings - Fork 412
CI: caching: closer match work/CI guarantees #2536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
`cabal v2-build all --enable-tests --enable-benchmarks` inferres 1 version per dep keeping all targets. People (frequently) & CI do `test` & `bench` separately. So `all tests` & `all bench` deps may not end up. Even current code does not match the CI guarantees, as all plugins get `test` separately, so their deps can not match-up. `caching` should not assume guarantees bigger then provided.
This workaround was not addressing the CI behaviour.
c9666eb to
27ec2c8
Compare
all && test && benchmark dep inconsistencies|
I reformulated the PR to address the most important stuff in it. To match the process completely - we would need to run the |
Efficient use of available space.
|
[skip circleci] |
Co-authored-by: Javier Neira <[email protected]>
jneira
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, thanks!
|
Nice review. Would belabor additionally: now CI would start to cache |
|
After the recent merge |
* CI: caching: do `bench` & `test` separately
`cabal v2-build all --enable-tests --enable-benchmarks` inferres 1 version per dep
keeping all targets.
People (frequently) & CI do `test` & `bench` separately.
So `all tests` & `all bench` deps may not end up.
Even current code does not match the CI guarantees, as all plugins get `test`
separately, so their deps can not match-up.
`caching` should not assume guarantees bigger then provided.
* CI: caching: rm workaround
This workaround was not addressing the CI behaviour.
* CI: {caching, test, bench}: output `freeze` or warning
* CI: {caching, test, bench}: m v2-update unification
* CI: caching: do bench caching only for what gets used
Efficient use of available space.
* CI: caching: fx benchmark caching step
Co-authored-by: Javier Neira <[email protected]>
* CI: {caching, test, bench}: `haskell/actions/setup` does the update
* CI: caching: m fx
Co-authored-by: Javier Neira <[email protected]>
cabal v2-build all --enable-tests --enable-benchmarkproblem - that command requires the level of dependency consistency guarantees that PR CI does not checks.testworkflow does essentiallycabal v2-build --enable-testson matrix by target.benchworkflow doescabal v2-build --enable-benchmarksby target.cachingusedall --enable-tests --enable-benchmarks- requiring total consistency.These changes are to make
cachingable to work whentest&benchdepsversions are inconsistent (which is how CI & people use them - separately).
Workaround to CI platform" needs to be removed either way, since I found out post hooks does not run if any of (even markedcontinue-on-error: true) steps fail.