VERSION holds MAJOR.MINOR (1.1), edited by hand. Every push to main is tagged vMAJOR.MINOR.PATCH by the "Tag release" workflow, with PATCH counted as an integer by scripts/next-version.sh. "Promote release" moves the major tag (v1) to a tested release and refuses to move it backwards. drb-update.sh: a newer release on the node's channel is now a reason to update by itself. REF=latest follows the highest vX.Y.Z tag (test nodes); REF=v1 follows the promoted tag (customer nodes). Versions compare per field as integers (1.10.0 > 1.9.3, never string or float order). It never downgrades, and an untagged target still needs a request. After an update it writes DRB_VERSION to .env; the edge node reports it in checkin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 lines
782 B
YAML
32 lines
782 B
YAML
name: Tag release
|
|
|
|
# node-26#49: every push to main is a release, vMAJOR.MINOR.PATCH (see
|
|
# scripts/next-version.sh). Test nodes (updater REF=latest) install the
|
|
# highest tag on their next timer run; customer nodes (REF=v1) wait for the
|
|
# Promote workflow.
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
concurrency:
|
|
group: version-tag
|
|
cancel-in-progress: false
|
|
|
|
jobs:
|
|
tag:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Tag this commit
|
|
run: |
|
|
git fetch --force --tags origin
|
|
TAG="$(bash scripts/next-version.sh)"
|
|
if [ -z "$TAG" ]; then echo "already tagged"; exit 0; fi
|
|
git tag "$TAG"
|
|
git push origin "refs/tags/$TAG"
|
|
echo "released $TAG"
|