diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b08f280..5b78047 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,9 +13,6 @@ jobs: with: fetch-depth: 0 - - name: Set CurseForge Variables - run: . scripts/set_curseforge_env.sh - - name: Fetch Github Release Asset uses: dsaltares/fetch-gh-release-asset@0.0.5 with: @@ -23,6 +20,9 @@ jobs: version: ${{ github.event.release.id }} file: OpenInv.jar + - name: Set CurseForge Variables + run: . scripts/set_curseforge_env.sh "${{ github.event.release.body }}" + - name: Create CurseForge Release uses: itsmeow/curseforge-upload@v3 with: @@ -30,7 +30,8 @@ jobs: project_id: 31432 game_endpoint: minecraft file_path: ./OpenInv.jar - changelog: ${{ github.event.release.body }} - display_name: ${{ github.event.release.name }} - game_versions: ${{ env.CURSEFORGE_MINECRAFT_VERSIONS }} + display_name: "${{ github.event.release.name }}" + game_versions: "${{ env.CURSEFORGE_MINECRAFT_VERSIONS }}" release_type: release + changelog_type: markdown + changelog: "${{ env.CURSEFORGE_CHANGELOG }}" diff --git a/scripts/set_curseforge_env.sh b/scripts/set_curseforge_env.sh index dcd8b85..f21dd40 100644 --- a/scripts/set_curseforge_env.sh +++ b/scripts/set_curseforge_env.sh @@ -38,5 +38,18 @@ function get_curseforge_minecraft_versions() { echo "${minecraft_versions}" } +# Modify provided changelog to not break when inserted into yaml file. +function get_yaml_safe_changelog() { + changelog=$1 + # Since we're using a flow scalar, newlines need to be doubled. + echo "${changelog// +/ + +}" +} + minecraft_versions=$(get_curseforge_minecraft_versions) echo "CURSEFORGE_MINECRAFT_VERSIONS=$minecraft_versions" >> "$GITHUB_ENV" + +changelog=$(get_yaml_safe_changelog "$1") +printf "CURSEFORGE_CHANGELOG<> "$GITHUB_ENV" \ No newline at end of file