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'