-
Notifications
You must be signed in to change notification settings - Fork 57
Conversation
8f7074c
to
e909ebb
Compare
0ac59ce
to
e475d1e
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.
I've got a couple questions that I left comments for, but my biggest question is, do we need this AND our other CI?
It seems like this PR quickly builds binaries for a few different OS/arch pairs, are they only useful for users of nix? If this is a solution that we can use to build and distribute wash
, I would prefer to supplant our current release
pipelines with something like this, or keep this scoped to just building.
All in all I'm happy to bring this in now, I just want to understand our future CI
This PR builds OCI (docker) images for Linux and Mac, both x86_64 and aarch64, as well as the binaries themselves. All of this is reproducible and portable - it runs on any OS. Please see the PR description for steps on how to try it out. If you're on a Mac you should be able to download the architecture-appropriate or universal binary archive, unzip and execute The obvious benefit I see with this PR is that now anyone can press on I'm happy get rid of usage of things like https://github.com/cross-rs/cross, but I am not a maintainer of this repo, so I suppose it's not up to me to decide - I do not know what's the procedure here. Alternatively, we could enable https://garnix.io/, which is a GitHub app and does not require any config, it parses the There would not be any GitHub artifacts uploaded in this case |
Seconding what @brooksmtownsend said. I don't think we should be running the same CI twice, once "vanilla" and once in So then it comes down to the pros/cons of running CI in |
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.
@rvolosatovs After the quick thread in slack I like the idea of getting this out and watching it for a little while, and eventually trying to replace our CI with these runs. Only request is to restrict the pull_request
and push
actions to the main branch given our possible rate limiting that we've run into
0503db0
to
528b272
Compare
Hey @rvolosatovs this seems super close! Is there anything we can do to push it into main? |
Signed-off-by: Roman Volosatovs <[email protected]>
Signed-off-by: Roman Volosatovs <[email protected]>
55b58f7
to
85310f9
Compare
9b4fef8
to
94be351
Compare
Signed-off-by: Roman Volosatovs <[email protected]>
Signed-off-by: Roman Volosatovs <[email protected]>
- Build, test and upload as artifacts: - Statically-linked (towards Musl) x86_64 and aarch64 Linux `wash` binaries - Darwin x86_64, aarch64 and "universal" binaries - Windows binaries - OCI images containing the above - Lint the `nix` flake - Run `clippy`, `nextest` and `fmt` via `nix` Signed-off-by: Roman Volosatovs <[email protected]>
Signed-off-by: Roman Volosatovs <[email protected]>
Signed-off-by: Roman Volosatovs <[email protected]>
Signed-off-by: Roman Volosatovs <[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.
Looking forward to comparing this to the existing action setup 👍
wash
binariesnix
flakeclippy
,nextest
andfmt
vianix
Note how fast the nix CI jobs have finished (most under 1 minute), that is due to the caching from previous runs
Related Issues
Blocked by #408
This includes #584 and will prevent issues like #564 from occurring in the future
Release Information
Consumer Impact
Testing
Built on platform(s)
Tested on platform(s)
Unit Test(s)
Acceptance or Integration
Manual Verification
Open a workflow run summary, e.g. https://github.com/wasmCloud/wash/actions/runs/4303159397
Pull appropriate artifact, e.g. https://github.com/wasmCloud/wash/suites/11277959533/artifacts/578333825 for x86_64 Linux OCI
Then:
Alternatively, e.g. aarch64 Linux musl binary (https://github.com/wasmCloud/wash/suites/11277959533/artifacts/578333818), run via QEMU: