WebAssembly / wasi-sdk

WASI-enabled WebAssembly C/C++ toolchain
Apache License 2.0
1.27k stars 190 forks source link

Automate more of the release process #440

Closed alexcrichton closed 3 months ago

alexcrichton commented 3 months ago

This commit updates the release process of wasi-sdk to remove most of the manual interaction and steps done. Instead now draft releases are automatically created for tags made. This means that there's only two steps necessary: (1) pushing a tag and (2) hitting publish on the generated release. This commit also removes a number of the CI scripts previously used to manage releases.

alexcrichton commented 3 months ago

https://github.com/alexcrichton/wasi-sdk/releases/tag/untagged-903aa84c64216d9a079c https://github.com/alexcrichton/wasi-sdk/releases/tag/wasi-sdk-24 is an example release created in my own repository which has all the requisite artifacts but but the changelog is a bit odd because I don't have historical releases in my repository.

alexcrichton commented 3 months ago

Weird sorry I had no idea that was a private link... I published it now and you should be able to see.

We might need to vet the artifacts in dist though; previously, Windows and Linux artifacts could be slightly different and some of the duplicates would slip through because on of the builds would add a +m version suffix. Maybe that is all resolved by the CMake changes but I can't check because I don't have permission to see the release you linked to.

The +m bits are fixed as well as duplicate platforms (only one linux build now, not multiple). I tried to resolve all these with the CMake changes.

Could you clarify what you mean by Windows/Linux being slightly different? I thought it was just picking the right tarball between the two Linux ones before?

alexcrichton commented 3 months ago

Er the updated link for my repo is https://github.com/alexcrichton/wasi-sdk/releases/tag/wasi-sdk-24

abrown commented 3 months ago

Here's what I would see, e.g., for wasi-sdk-23:

$ ll /tmp/wasi-sdk-artifacts.JUykmGJ
total 848468
-rw-r--r--. 1 abrown abrown 184931850 Jul 12 11:51 dist-macos-latest.zip
-rw-r--r--. 1 abrown abrown 213709327 Jul 12 11:51 dist-ubuntu-bionic.zip
-rw-r--r--. 1 abrown abrown 470181645 Jul 12 11:52 dist-windows-latest-x64.zip
drwxr-xr-x. 2 abrown abrown       200 Jul 12 11:52 release

$ ll /tmp/wasi-sdk-artifacts.JUykmGJ/release
total 819020
-rw-r--r--. 1 abrown abrown    131559 Jul 10 19:05 libclang_rt.builtins-wasm32-wasi-23.0+m.tar.gz
-rw-r--r--. 1 abrown abrown    131878 Jul 10 18:45 libclang_rt.builtins-wasm32-wasi-23.0.tar.gz
-rw-r--r--. 1 abrown abrown  70895500 Jul 10 18:45 wasi-sdk_23.0_amd64.deb
-rw-r--r--. 1 abrown abrown 111088401 Jul 10 18:45 wasi-sdk-23.0-linux.tar.gz
-rw-r--r--. 1 abrown abrown 152852721 Jul 10 18:41 wasi-sdk-23.0-macos.tar.gz
-rw-r--r--. 1 abrown abrown 438810533 Jul 10 19:05 wasi-sdk-23.0+m-mingw.tar.gz
-rw-r--r--. 1 abrown abrown  32285073 Jul 10 19:05 wasi-sysroot-23.0+m.tar.gz
-rw-r--r--. 1 abrown abrown  32458942 Jul 10 18:45 wasi-sysroot-23.0.tar.gz

Notice how the +m versions of the builtins and sysroot files are slightly different?

alexcrichton commented 3 months ago

Ah ok I think those bits are all handled then. The +m bits are all gone due to the version script running in a different place now. The duplicates are also all explicitly selected from just a single builder so there's no extra duplicates to worry about.

Put another way the release-artifacts CI artfiact I think should already have all these details processed, and the github release is based on the dist folder uploaded there