Skip to content
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

DONTMERGE: Add consensus to Windows CI #1851

Closed
wants to merge 3 commits into from

Conversation

mrBliss
Copy link
Contributor

@mrBliss mrBliss commented Mar 25, 2020

@mrBliss mrBliss added the consensus issues related to ouroboros-consensus label Mar 25, 2020
@mrBliss mrBliss requested a review from coot March 25, 2020 10:18
@mrBliss mrBliss force-pushed the mrBliss/consensus-windows-ci branch 2 times, most recently from eaa4b55 to c2a8e3a Compare March 25, 2020 17:33
@mrBliss mrBliss changed the title Add consensus to Windows CI DONTMERGE: Add consensus to Windows CI Mar 25, 2020
@mrBliss mrBliss added the WIP Do not merge, work in progress. label Mar 25, 2020
@mrBliss
Copy link
Contributor Author

mrBliss commented Mar 25, 2020

Waiting on #1852.

@mrBliss
Copy link
Contributor Author

mrBliss commented Mar 25, 2020

CI passes, hurray! Adding consensus to CI increases the run-time from ~17 min to ~44 min 🙁. I think some better caching would improve things:

Steps Time
Set up job 2s
Configure Chocolatey 48s
Install msys2 3m 14s
Install GHC 1m 44s
Install Cabal 2s
Set PATH 1s
Print versions 1s
cache cabal store 4s
cache buiddir [cache] 1s
cache buiddir [src] 6s
cache builddir [packagedb] 0s
update Hackage index 19s
checkout ouroboros-network repository 12s
Use cabal.project.local.windows 1s
Win32-network [dependencies] 29s
Win32-network [build] 21s
Win32-network [test] 54s
ntp-client [dependencies] 12s
ntp-client [build] 1s
ntp-client [test] 42s
io-sim-classes [dependencies] 1s
io-sim-classes [build] 6s
io-sim [dependencies] 1s
io-sim [build] 21s
io-sim [test] 2s
typed-protcols [dependencies] 2s
typed-protocols [build] 4s
typed-protocols-examples [dependencies] 1s
typed-protocols-examples [build] 14s
typed-protocols-examples [test] 4s
network-mux [dependencies] 1s
network-mux [build] 17s
network-mux [test] 52s
ouroboros-network-framework [dependencies] 12s
ouroboros-network-framework [build] 28s
ourobors-network-framework [test] 2m 7s
ouroboros-network [dependencies] 14s
ouroboros-network [build] 1m 27s
ouroboros-network [test] 1m 4s
ouroboros-consensus [dependencies] 4m 45s
ouroboros-consensus [build] 2m 52s
ouroboros-consensus [test-consensus] 8s
ouroboros-consensus [test-storage] 6s
ouroboros-consensus-test-infra [dependencies] 6s
ouroboros-consensus-test-infra [build] 38s
ouroboros-consensus-test-infra [test] 3s
ouroboros-consensus-mock [dependencies] 2s
ouroboros-consensus-mock [build] 34s
ouroboros-consensus-mock [test] 1m 34s
ouroboros-consensus-byronspec [dependencies] 8m 25s
ouroboros-consensus-byronspec [build] 16s
ouroboros-consensus-byron [dependencies] 36s
ouroboros-consensus-byron [build] 47s
ouroboros-consensus-byron [test] 3m 53s
ouroboros-consensus-byron [db-analyser] 2s
ouroboros-consensus-byron [db-converter] 2s
ouroboros-consensus-shelley [dependencies] 1m 19s
ouroboros-consensus-shelley [build] 44s
ouroboros-consensus-shelley [test] 34s
ouroboros-consensus-cardano [dependencies] 2s
ouroboros-consensus-cardano [build] 9s
Post checkout ouroboros-network repository 2s
Post cache builddir [packagedb] 0s
Post cache buiddir [src] 0s
Post cache buiddir [cache] 0s
Post cache cabal store 0s
Complete job 0s

I would expect that "Configure Chocolatey", "Install msys2", and "Install GHC" can be cached.

Moreover, I have highlighted some steps that really should benefit from caching. We're building all our source-repository-package dependencies from scratch each time, which is a waste.

Finally, for all the four Post cache ... steps, I see:

Cache hit occurred on the primary key X, not saving cache.

Is that correct? It seems like it is not caching things.

iohk-bors bot added a commit that referenced this pull request Mar 26, 2020
1855: Hard-code expected results as CBOR for golden files instead of using files r=mrBliss a=mrBliss

Fixes #1351.

Using files to store the expected results for golden files, and thus relative paths, was a PITA: see #1351 + it was causing problems in #1851.

This PR introduces `Test.Util.Golden`, which takes the expected result as a CBOR `FlatTerm`. No more files, hurray! Using a `FlatTerm` will make diffing much easier.

Co-authored-by: Thomas Winant <[email protected]>
iohk-bors bot added a commit that referenced this pull request Mar 26, 2020
1855: Hard-code expected results as CBOR for golden files instead of using files r=mrBliss a=mrBliss

Fixes #1351.

Using files to store the expected results for golden files, and thus relative paths, was a PITA: see #1351 + it was causing problems in #1851.

This PR introduces `Test.Util.Golden`, which takes the expected result as a CBOR `FlatTerm`. No more files, hurray! Using a `FlatTerm` will make diffing much easier.

Co-authored-by: Thomas Winant <[email protected]>
mrBliss added 3 commits March 26, 2020 10:05
This makes the tests super slow and should only be enabled on a nightly CI
job.
@mrBliss mrBliss force-pushed the mrBliss/consensus-windows-ci branch from 1ce97e8 to 760f908 Compare March 26, 2020 09:07
@jasagredo
Copy link
Contributor

I think this one is no longer applicable? CC: @coot

@coot
Copy link
Contributor

coot commented Jan 5, 2023

Yes, closing.

@coot coot closed this Jan 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
consensus issues related to ouroboros-consensus WIP Do not merge, work in progress.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build and test consensus on real Windows in CI
3 participants