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