refactor(ci): encode line offsets in tracker markers

Markers now self-document their position: 'OFFSET=N' means the target
row is N lines below the marker. Workflow extracts offset dynamically
via sed, no hardcoded values.

Format: <!-- TRACKER:<NAME> OFFSET=<N> -->

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
KenanZhuandClaude committed 2026-06-23 11:00:38 +08:00
1 parent 4f3dff0df4
commit cb000cac90
2 files changed
+17 -11

No files matched your search

+15 -9
View File
@@ -34,9 +34,11 @@ jobs:
NEW_VERSION="${NEW_VERSION#v}" NEW_VERSION="${NEW_VERSION#v}"
echo "New Gitea version: $NEW_VERSION" echo "New Gitea version: $NEW_VERSION"
# Read current max-tested: marker is above table, data row at marker + 3 # Parse marker line AND embedded OFFSET to locate the data row
MARKER_LINE=$(grep -n 'TRACKER:QUICK-REF-MAX' COMPATIBILITY.md | cut -d: -f1) MARKER_INFO=$(grep -n 'TRACKER:QUICK-REF-MAX' COMPATIBILITY.md)
CURRENT=$(sed -n "$((MARKER_LINE + 3))p" COMPATIBILITY.md | awk -F'|' '{gsub(/\*| /, "", $4); print $4}') MARKER_LINE=$(echo "$MARKER_INFO" | cut -d: -f1)
OFFSET=$(echo "$MARKER_INFO" | sed 's/.*OFFSET=\([0-9]*\).*/\1/')
CURRENT=$(sed -n "$((MARKER_LINE + OFFSET))p" COMPATIBILITY.md | awk -F'|' '{gsub(/\*| /, "", $4); print $4}')
echo "Current max tested: $CURRENT" echo "Current max tested: $CURRENT"
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
@@ -54,9 +56,11 @@ jobs:
if: steps.version.outputs.skip != 'true' if: steps.version.outputs.skip != 'true'
run: | run: |
NEW="${{ steps.version.outputs.new_version }}" NEW="${{ steps.version.outputs.new_version }}"
# Quick Reference data row is at marker + 3 (marker → header → separator → data) # Parse marker line and embedded OFFSET to locate the data row
MARKER=$(grep -n 'TRACKER:QUICK-REF-MAX' COMPATIBILITY.md | cut -d: -f1) MARKER_INFO=$(grep -n 'TRACKER:QUICK-REF-MAX' COMPATIBILITY.md)
TARGET=$((MARKER + 3)) MARKER=$(echo "$MARKER_INFO" | cut -d: -f1)
OFFSET=$(echo "$MARKER_INFO" | sed 's/.*OFFSET=\([0-9]*\).*/\1/')
TARGET=$((MARKER + OFFSET))
# Update column 4 (Max Tested) and column 5 (Status) in the pipe-separated row # Update column 4 (Max Tested) and column 5 (Status) in the pipe-separated row
awk -i inplace -F'|' -v OFS='|' -v ver="${NEW}" ' awk -i inplace -F'|' -v OFS='|' -v ver="${NEW}" '
NR == '$TARGET' { $4 = " **" ver "** "; $5 = " ⏳ Pending Verification " } NR == '$TARGET' { $4 = " **" ver "** "; $5 = " ⏳ Pending Verification " }
@@ -68,9 +72,11 @@ jobs:
run: | run: |
NEW="${{ steps.version.outputs.new_version }}" NEW="${{ steps.version.outputs.new_version }}"
TODAY=$(date +%Y-%m-%d) TODAY=$(date +%Y-%m-%d)
# Insert new row at marker + 2 (marker → header → after separator) # Parse marker line and embedded OFFSET for the insertion point
MARKER=$(grep -n 'TRACKER:VERSION-INSERT' COMPATIBILITY.md | cut -d: -f1) MARKER_INFO=$(grep -n 'TRACKER:VERSION-INSERT' COMPATIBILITY.md)
INSERT=$((MARKER + 2)) MARKER=$(echo "$MARKER_INFO" | cut -d: -f1)
OFFSET=$(echo "$MARKER_INFO" | sed 's/.*OFFSET=\([0-9]*\).*/\1/')
INSERT=$((MARKER + OFFSET))
ROW="| **${NEW}** | ${TODAY} | ⏳ Pending Verification | TBD |" ROW="| **${NEW}** | ${TODAY} | ⏳ Pending Verification | TBD |"
sed -i "${INSERT}a ${ROW}" COMPATIBILITY.md sed -i "${INSERT}a ${ROW}" COMPATIBILITY.md
+2 -2
View File
@@ -4,7 +4,7 @@ This document tracks the compatibility between **Gitea Mail Templates** releases
## Quick Reference ## Quick Reference
<!-- TRACKER:QUICK-REF-MAX --> <!-- TRACKER:QUICK-REF-MAX OFFSET=3 -->
| Template Release | Min Gitea | Max Tested Gitea | Status | | Template Release | Min Gitea | Max Tested Gitea | Status |
|-----------------|-----------|-----------------|--------| |-----------------|-----------|-----------------|--------|
| **v1.0.x** | **1.25.0** | **1.26.4** | ✅ Active | | **v1.0.x** | **1.25.0** | **1.26.4** | ✅ Active |
@@ -21,7 +21,7 @@ gitea --version
## Gitea Version History — Mail Template Impact ## Gitea Version History — Mail Template Impact
<!-- TRACKER:VERSION-INSERT --> <!-- TRACKER:VERSION-INSERT OFFSET=2 -->
| Gitea | Release Date | Mail Template Changes | Breaking? | | Gitea | Release Date | Mail Template Changes | Breaking? |
|-------|-------------|----------------------|-----------| |-------|-------------|----------------------|-----------|
| **1.26.4** | 2026-06-21 | None — hotfix release | No | | **1.26.4** | 2026-06-21 | None — hotfix release | No |