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

Build / CI #1

Open
gedw99 opened this issue Mar 10, 2025 · 4 comments
Open

Build / CI #1

gedw99 opened this issue Mar 10, 2025 · 4 comments
Assignees

Comments

@gedw99
Copy link
Collaborator

gedw99 commented Mar 10, 2025

get https://github.com/go-task/task going locally, in CI

remote tasks, etc

@konsumer it can build the JS things too ... and Task is 100% cross platform, so isomorphic for easy cross device builds, testing etc...

@gedw99 gedw99 self-assigned this Mar 10, 2025
@konsumer
Copy link
Collaborator

konsumer commented Mar 10, 2025

I think here, we don't so much need "isomorphic for easy cross device builds" since this repo only targets wasm/js, but feel free to setup the go stuff however you like.

@konsumer
Copy link
Collaborator

I added CI testing for node. With wasm-based projects, I find that it can complicate things if you need to build your wasm in CI. For native stuff, it makes more sense, because you need to target a bunch of platforms you are not running locally, as a dev, and they just get added to releases, so people can download then when they want to run it. With wasm, especially if it's wrapped with js like this, it ends up much simpler to just check in the wasm file. Like I think having the source-available is important, and wasm in the repo should always reflect the source, but I think it's also ok to just check it in, which I would never do with a standard native project.

I am open to either path, but I think it's important to keep things simple, if there is not a good reason to make it more complicated. Another idea, too, if we do want to do builds in CI is to just build it every time as a kind of test (like a go-test) but it's not really part of release, and on release take the output of that and publish with the js to npm.

@gedw99
Copy link
Collaborator Author

gedw99 commented Mar 10, 2025

Thanks for the explanation.

I saw the compile targets in the docs issue . Deno, WASM, npm, native

I am pretty sure that will a bit of extra effort all of these can be done locally and in CI.

Also CD out to the various registries …

@konsumer
Copy link
Collaborator

I saw the compile targets in the docs issue . Deno, WASM, npm, native

This is really all 1 target: wasm.

I am pretty sure that will a bit of extra effort all of these can be done locally and in CI.

It's definitely possible, but my point is that it needlessly complicates things to not just check the wasm.

Also CD out to the various registries …

Lately, I tend to do this when a release is published, but this is not tied to building. For example, if the wasm is in the repo, I go tag it as "this is version 1.0.0", and mark the tag as a release. CI will take that wasm + js and publish it everywhere. no CI go-build needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants