diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 6e0afe9..0ca2500 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,6 +31,12 @@ jobs: echo "VERSION=$VERSION" >> $GITHUB_OUTPUT echo "Extracted version: $VERSION" + - name: Read previous version + id: get-previous-version + run: | + PREVIOUS_VERSION=$(git describe --tags --abbrev=0) + echo "PREVIOUS_VERSION=$PREVIOUS_VERSION" >> $GITHUB_OUTPUT + - name: Create and push tag run: | git config --global user.name "GitHub Actions Bot" @@ -49,15 +55,19 @@ jobs: VERSION="${{ steps.extract-version.outputs.VERSION }}" # 대괄호가 있는 형식과 없는 형식 모두 처리 CHANGELOG_CONTENT_BODY=$(sed -n -E "/### \[?${VERSION}\]?.*\(/,/### \[?[0-9]+\.[0-9]+\.[0-9]+\]?/p" CHANGELOG.md | sed '$d') - PREVIOUS_VERSION=$(git describe --tags --abbrev=0) + PREVIOUS_VERSION="${{ steps.get-previous-version.outputs.PREVIOUS_VERSION }}" + FULL_CHANGELOG_CONTENT=$(echo "**Full Changelog**: https://github.com/99mini/fx/compare/${PREVIOUS_VERSION}...${VERSION}") echo "Previous version: $PREVIOUS_VERSION" echo "Full changelog: $FULL_CHANGELOG_CONTENT" - CHANGELOG_CONTENT=$(echo "$CHANGELOG_CONTENT_BODY\n\n$FULL_CHANGELOG_CONTENT") + # 개행 문자를 올바르게 처리하기 위해 여러 줄 문자열 구문 사용 echo "CHANGELOG_CONTENT<> $GITHUB_OUTPUT - echo "$CHANGELOG_CONTENT" >> $GITHUB_OUTPUT + echo "$CHANGELOG_CONTENT_BODY" >> $GITHUB_OUTPUT + echo "" >> $GITHUB_OUTPUT + echo "" >> $GITHUB_OUTPUT + echo "$FULL_CHANGELOG_CONTENT" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT - name: Create GitHub Release