50 lines
1.6 KiB
YAML
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 --force
|
|
|
|
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'
|