celestia-node icon indicating copy to clipboard operation
celestia-node copied to clipboard

Auto generate binaries for different platforms on releases

Open Wondertan opened this issue 3 years ago • 3 comments
trafficstars

Wondertan avatar Jul 05 '22 12:07 Wondertan

What platforms would we target? amd64, arm64, windows, mac?

Currently we don't tag any docker builds besides sha commit tags, would latest and semver tags be appropriate on release?

What would the preferred release workflow be? Create a release and then upload assets during the workflow? Or create a semver tag, have the workflow create a release draft with assets attached, and then finalize that release manually?

Working on a MVP here

iofq avatar Jul 07 '22 09:07 iofq

What platforms would we target?

amd64, arm64 and mac are higher prio -- windows would also be cool :)

Currently we don't tag any docker builds besides sha commit tags, would latest and semver tags be appropriate on release?

Yes ( cc @sysrex )

What would the preferred release workflow be? Create a release and then upload assets during the workflow? Or create a semver tag, have the workflow create a release draft with assets attached, and then finalize that release manually?

@sysrex @Wondertan do you guys have any thoughts? I think we should go with the latter?

renaynay avatar Jul 28 '22 13:07 renaynay

Following up on this:

For windows, the fslock package doesn't appear to support windows yet, which would need to happen first.

For mac/darwin, a dependancy of libp2p, elastic/gosigar, doesn't want to build under GOOS=darwin for me. But I may be missing something here.

arm/amd64 binaries are working, as are docker build on tagged release. Still need to figure out the actual release workflow.

iofq avatar Jul 29 '22 09:07 iofq

@iofq, true, I just tried me to cross-compile for darwin and saw the same issue with gosigar. This is weird because I know some of our folks are using mac with no issues

Wondertan avatar Aug 22 '22 13:08 Wondertan

Ok, so this is related: https://github.com/elastic/go-sysinfo/issues/127, and CGO prevents cross-compiling

Wondertan avatar Aug 22 '22 13:08 Wondertan

I've run into issues with gosigar before and basically had to fork and maintain a fork of gosigar in order to prevent this issue. It was a long time ago though.

renaynay avatar Sep 12 '22 08:09 renaynay

https://github.com/gballet/gosigar

go-ethereum used to indirectly depend on it I think bc of this dep: https://github.com/olebedev/go-duktape which has since been deprecated.

renaynay avatar Sep 12 '22 08:09 renaynay

closing this issue as it was taken care of by https://github.com/celestiaorg/celestia-node/pull/2661. once we have ci/release flakey tests passing and the entire release process continues we'll have the binaries

ramin avatar Oct 10 '23 09:10 ramin