@@ -2,7 +2,7 @@ name: Release
22
33on :
44 push :
5- branches : [main ]
5+ branches : [release ]
66
77permissions :
88 contents : write
@@ -100,41 +100,30 @@ jobs:
100100 env :
101101 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
102102
103- - name : Archive changelog on dev branch
103+ - name : Archive changelog on main
104104 if : steps.tag-check.outputs.exists == 'false'
105105 run : |
106106 CURRENT_VERSION=${{ steps.package-version.outputs.version }}
107107 MAJOR=$(echo $CURRENT_VERSION | cut -d. -f1)
108108 MINOR=$(echo $CURRENT_VERSION | cut -d. -f2)
109109 MAJOR_MINOR="$MAJOR.$MINOR"
110110
111- # Checkout dev branch
112- git fetch origin dev
113- git checkout dev
114-
115- # Rename and version the changelog file
116111 PATTERN_FILE=".changelog/v${MAJOR_MINOR}.x.md"
117112 VERSIONED_FILE=".changelog/v${CURRENT_VERSION}.md"
118113
119114 if [ -f "$PATTERN_FILE" ]; then
120- # Rename the file (preserves git history)
121- git mv "$PATTERN_FILE" "$VERSIONED_FILE"
115+ # Archive directly on main so release never diverges
116+ git fetch origin main
117+ git checkout main
122118
123- # Replace version placeholders in the renamed file
124- sed -i.bak "s/v${MAJOR_MINOR}\.x/v${CURRENT_VERSION}/g; s/${MAJOR_MINOR}\.x/${CURRENT_VERSION}/g" "$VERSIONED_FILE"
119+ git mv "$PATTERN_FILE" "$VERSIONED_FILE"
120+ sed -i.bak "s/v${MAJOR_MINOR}\.x/v${CURRENT_VERSION}/g; s/${MAJOR_MINOR}\.x/${CURRENT_VERSION}/g; s/YYYY-MM-DD/$(date +%Y-%m-%d)/g " "$VERSIONED_FILE"
125121 rm "${VERSIONED_FILE}.bak"
126122
127- # Commit the renamed and updated changelog
128123 git add "$VERSIONED_FILE"
129124 git commit -m "docs: archive changelog for v${CURRENT_VERSION} [skip ci]"
130- git push origin dev
131-
132- # Store the changelog commit SHA before switching branches
133- CHANGELOG_COMMIT=$(git rev-parse HEAD)
134-
135- # Merge changelog back to main (without triggering CI)
136- git checkout main
137- git cherry-pick "$CHANGELOG_COMMIT"
138125 git push origin main
139- git checkout dev
126+
127+ # Fast-forward release to match main
128+ git push origin main:release
140129 fi
0 commit comments