-
Notifications
You must be signed in to change notification settings - Fork 88
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
Populate caches first #857
Conversation
Transactions CostsSizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using
Script summary
Cost of Init Transaction
Cost of Commit TransactionCurrently only one UTxO per commit allowed (this is about to change soon)
Cost of CollectCom Transaction
Cost of Close Transaction
Cost of Contest Transaction
Cost of Abort TransactionSome variation because of random mixture of still initial and already committed outputs.
Cost of FanOut TransactionInvolves spending head output and burning head tokens. Uses ada-only UTxO for better comparability.
|
193038a
to
de8fd34
Compare
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.
Good idea, let's try this. Some changes required though
- name: 🔨 Build | ||
run: | | ||
nix develop .#ci --command bash -c 'cabal build ${{ matrix.package }}' | ||
nix develop .#ci --command bash -c 'cabal update && cabal build ${{ matrix.package }}' |
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.
I think we can drop this step as build errors would already appear in the previous job and cabal test
would also build anything that was not yet built (e.g. benchmarks are not built when we do cabal build all
)
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.
I'd like to keep it that way to limit inter jobs dependencies.
This P.R. proposes an improvement by just preparing the caches before running the existing job. So if we decide to drop the warm up the caches job this job still works and make sense.
/cc @ch1bo
Do you want to continue this journey? I think it does not provide any benefit and instead we should focus on #867. WDYT? |
We have one job which will build all and populate nix cache. Only when it is finished will the rest of the job run, getting benefit from the cache.
We bootstrap nix once for both update and build and spare a few seconds
Canceled in favor of #867 |
We restructure the C.I. to have one job that will build and populate all the caches for the next jobs to run.
It shall improve our resources usage in C.I. as we ensure that most of the stuff are built only once.
It might improve our total job execution although... well it depends on so many things that it is not clear. But it will bring us more determinism in job execution that can pave the way to improvement.
The next big thing eating time in the job is downloading all the nix artifacts. It gives us some leads for future improvements in C.I. runtime.