-
-
Notifications
You must be signed in to change notification settings - Fork 378
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
CI: caching: closer match work/CI guarantees #2536
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]>
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-benchmark
problem - that command requires the level of dependency consistency guarantees that PR CI does not checks.test
workflow does essentiallycabal v2-build --enable-tests
on matrix by target.bench
workflow doescabal v2-build --enable-benchmarks
by target.caching
usedall --enable-tests --enable-benchmarks
- requiring total consistency.These changes are to make
caching
able to work whentest
&bench
depsversions 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.