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}"
|
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
@@ -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 |
|
||||||
|
|||||||
Reference in new issue
Block a user