You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
#!/bin/bash
|
|
|
|
# Script to merge the outputs of a run on github actions to github releases.
|
|
# This is invoked from `.github/workflows/publish-artifacts.yml`. All previous
|
|
# artifacts from builds are located in `bins-*` folders. The main purpose of
|
|
# this script is to take the "min" build and merge it into the "normal" build to
|
|
# produce one final tarball. This means that the final artifacts will have both
|
|
# a normal and a min build in them for comparison and usage.
|
|
|
|
set -ex
|
|
|
|
# Prepare the upload folder and move all artifacts that aren't being merged into
|
|
# this folder, e.g. the MSI installer and adapter wasm files.
|
|
rm -rf dist
|
|
mkdir dist
|
|
mv -t dist bins-*/*.{msi,wasm}
|
|
mv wasmtime-platform-header/* dist
|
|
|
|
# Merge tarballs and zips by searching for `*-min` builds, unpacking the
|
|
# min/normal builds, into the same destination, and then repacking into a
|
|
# tarball.
|
|
#
|
|
# Note that for now xz compression is used for the final artifact to try to get
|
|
# small artifacts, but it's left at the default level since a lot of artifacts
|
|
# are processed here and turning it up to the max 9 compression might take
|
|
# quite awhile on CI for this one builder to process.
|
|
for min in bins-*-min/*.tar.*; do
|
|
normal=${min/-min\//\/}
|
|
filename=$(basename $normal)
|
|
dir=${filename%.tar.gz}
|
|
|
|
rm -rf tmp
|
|
mkdir tmp
|
|
tar xf $min -C tmp
|
|
tar xf $normal -C tmp
|
|
tar -cf - -C tmp $dir | xz -T0 > dist/$dir.tar.xz
|
|
rm $min $normal
|
|
done
|
|
|
|
for min in bins-*-min/*.zip; do
|
|
normal=${min/-min\//\/}
|
|
filename=$(basename $normal)
|
|
dir=${filename%.zip}
|
|
|
|
rm -rf tmp
|
|
mkdir tmp
|
|
(cd tmp && unzip -o ../$min)
|
|
(cd tmp && unzip -o ../$normal)
|
|
(cd tmp && 7z a ../dist/$dir.zip $dir/)
|
|
rm $min $normal
|
|
done
|
|
|
|
# Copy over remaining source tarball into the dist folder
|
|
mv -t dist bins-*/*.tar.*
|
|
|