gpu-dawn: CI: upload headers.json + tarball

Fixes hexops/mach#171
Helps hexops/mach#109

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-02-27 19:29:56 -07:00
parent 262422edde
commit 028b7d8034
5 changed files with 69 additions and 24 deletions

24
gpu-dawn/dev/bundle-release.sh Executable file
View file

@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -exuo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"/..
# Prepare the `out/` directory that we will bundle.
rm -rf out/
mkdir out/
cp -R libs/dawn/include out/
cp -R libs/dawn/out/Debug/gen/include/* out/include/
cp libs/dawn/LICENSE out/
# Bundle headers.json.gz
pushd out
python ../dev/dir_to_json.py > ../headers.json
popd
gzip -9 headers.json
# Copy the binary into the out/ directory
cp zig-out/lib/libdawn.a out/
# Create out.tar.gz bundle
pushd out
tar -czvf ../out.tar.gz .
popd

View file

@ -0,0 +1,12 @@
import os
import json
def dir_to_dict(d):
dict = {}
for dirpath,_,filenames in os.walk(d):
for f in filenames:
path = os.path.join(dirpath, f)
dict[path] = open(path, 'r').read()
return dict
print(json.dumps(dir_to_dict('.')))

20
gpu-dawn/dev/upload-release.sh Executable file
View file

@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -exuo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"/..
# Prepare tarball, headers.json.gz, etc.
./dev/bundle-release.sh
if [[ "${UPLOAD_HEADERS:-"false"}" == "true" ]]; then
# Upload headers.json.gz
gh release upload "release-$(git rev-parse --short HEAD)" headers.json.gz
fi
# Upload static library individually.
cp zig-out/lib/libdawn.a "libdawn_$RELEASE_NAME.a"
gzip -9 "libdawn_$RELEASE_NAME.a"
gh release upload "release-$(git rev-parse --short HEAD)" "libdawn_$RELEASE_NAME.a"
# Upload tarball of static library + headers.
mv out.tar.gz "$RELEASE_NAME.tar.gz"
gh release upload "release-$(git rev-parse --short HEAD)" "$RELEASE_NAME.tar.gz"