setup-browser/.forgejo/workflows/build.yaml
2024-12-27 00:40:29 +01:00

50 lines
1.6 KiB
YAML

on:
push:
branches:
- main
paths:
- 'src/*.v'
jobs:
build:
name: Build and upload binary
runs-on: docker
steps:
- uses: actions/checkout@v4
- name: Install v
run: |
wget -q https://github.com/vlang/v/releases/latest/download/v_linux.zip
pushd /tmp
unzip -q $GITHUB_WORKSPACE/v_linux.zip
popd
rm v_linux.zip
/tmp/v/v version
- name: Build setup-browser
run: |
/tmp/v/v -prod .
- name: Upload binary as generic package and create a release
run: |
set -e
VERSION="$(date +'%y.%m.%d').$(git rev-parse --short HEAD)"
echo Download jq
wget -q https://github.com/jqlang/jq/releases/latest/download/jq-linux-amd64 -O jq
chmod +x jq
echo Create a tag
git tag "$VERSION"
git push --tags
echo Create a release
OUT=$(curl --silent -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Content-Type: application/json" \
--data '{"name": "'$VERSION'", "tag_name": "'$VERSION'"}' \
"$GITHUB_API_URL/repos/actions/setup-browser/releases" \
| tee /dev/stderr)
UP_URL=$(echo "$OUT" | ./jq -r .upload_url )
echo Add the binary to the release
curl --silent -X 'POST' --header "Authorization: token $GITHUB_TOKEN" \
"$UP_URL" \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'attachment=@setup-browser'