fix: use expanding heredoc for release notes to avoid sed failure

The multi-line COMMITS variable broke sed substitution due to embedded
newlines. Switch to an expanding heredoc that interpolates variables
directly, removing the fragile sed placeholder replacement.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
DevContainer User
2026-02-27 02:29:54 +00:00
parent e6c3b7f7bf
commit e3f751240a
+14 -15
View File
@@ -156,8 +156,10 @@ jobs:
- name: Create GitHub Release - name: Create GitHub Release
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ steps.version.outputs.version }}
TAG: ${{ steps.version.outputs.tag }}
IMAGE: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.tag }}
run: | run: |
# Build release notes
PREV_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "") PREV_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "")
if [ -z "$PREV_TAG" ]; then if [ -z "$PREV_TAG" ]; then
COMMITS=$(git log --pretty=format:"- %s (%h)" HEAD) COMMITS=$(git log --pretty=format:"- %s (%h)" HEAD)
@@ -165,29 +167,26 @@ jobs:
COMMITS=$(git log --pretty=format:"- %s (%h)" "${PREV_TAG}..HEAD") COMMITS=$(git log --pretty=format:"- %s (%h)" "${PREV_TAG}..HEAD")
fi fi
cat > release-notes.md <<'NOTESEOF' cat > release-notes.md <<NOTESEOF
## Release RELEASE_VERSION ## Release ${VERSION}
### Changes ### Changes
RELEASE_COMMITS ${COMMITS}
### Docker Image ### Docker Image
```bash \`\`\`bash
docker pull RELEASE_IMAGE docker pull ${IMAGE}
``` \`\`\`
### Helm Chart ### Helm Chart
```bash \`\`\`bash
helm repo add devcontainer https://cpfarhood.github.io/devcontainer helm repo add devcontainer https://cpfarhood.github.io/devcontainer
helm repo update helm repo update
helm install mydev devcontainer/devcontainer --version RELEASE_VERSION --set name=mydev helm install mydev devcontainer/devcontainer --version ${VERSION} --set name=mydev
``` \`\`\`
NOTESEOF NOTESEOF
sed -i 's/^ //' release-notes.md sed -i 's/^ //' release-notes.md
sed -i "s|RELEASE_VERSION|${{ steps.version.outputs.version }}|g" release-notes.md
sed -i "s|RELEASE_IMAGE|${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.tag }}|g" release-notes.md
sed -i "s|RELEASE_COMMITS|${COMMITS}|g" release-notes.md
gh release create "${{ steps.version.outputs.tag }}" \ gh release create "${TAG}" \
--title "Release ${{ steps.version.outputs.tag }}" \ --title "Release ${TAG}" \
--notes-file release-notes.md --notes-file release-notes.md