diff --git a/.github/actions/asana-create-action-item/templates/internal-release-tag-failed.yml b/.github/actions/asana-create-action-item/templates/internal-release-tag-failed.yml
index edb1cc2cef..ddc2e6471a 100644
--- a/.github/actions/asana-create-action-item/templates/internal-release-tag-failed.yml
+++ b/.github/actions/asana-create-action-item/templates/internal-release-tag-failed.yml
@@ -38,7 +38,8 @@ data:
- Complete this task when ready and proceed with testing the build.
+ Complete this task when ready and proceed with testing the build. If you're bumping an internal release, you should get another task asking you to publish the release in Sparkle.
+ Look for other tasks in task and handle them as needed.
🔗 Workflow URL: ${WORKFLOW_URL}.
diff --git a/.github/workflows/bump_internal_release.yml b/.github/workflows/bump_internal_release.yml
index 371428d089..f0cc9db706 100644
--- a/.github/workflows/bump_internal_release.yml
+++ b/.github/workflows/bump_internal_release.yml
@@ -30,6 +30,32 @@ jobs:
*) echo "👎 Not a release branch"; exit 1 ;;
esac
+ - name: Check out the code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.ref_name }}
+
+ - name: Extract Asana Task ID
+ id: task-id
+ uses: ./.github/actions/asana-extract-task-id
+ with:
+ task-url: ${{ github.event.inputs.asana-task-url }}
+
+ - name: Validate release notes
+ env:
+ TASK_ID: ${{ steps.task-id.outputs.task-id }}
+ ASANA_ACCESS_TOKEN: ${{ secrets.ASANA_ACCESS_TOKEN }}
+ run: |
+ curl -fLSs "https://app.asana.com/api/1.0/tasks/${TASK_ID}?opt_fields=notes" \
+ -H "Authorization: Bearer ${ASANA_ACCESS_TOKEN}" \
+ | jq -r .data.notes \
+ | ./scripts/extract_release_notes.sh > release_notes.txt
+ release_notes="$(" ]]; then
+ echo "::error::Release notes are empty. Please add release notes to the Asana task and restart the workflow."
+ exit 1
+ fi
+
run_tests:
name: Run Tests
diff --git a/.github/workflows/publish_dmg_release.yml b/.github/workflows/publish_dmg_release.yml
index 3cd949b361..e300e71cd6 100644
--- a/.github/workflows/publish_dmg_release.yml
+++ b/.github/workflows/publish_dmg_release.yml
@@ -45,7 +45,7 @@ jobs:
name: Tag public release
- # Run if release-type is provided (not empty) an is not internal
+ # Run if release-type is provided (not empty) and is not internal
if: contains(github.event.inputs.release-type, '') == false && github.event.inputs.release-type != 'internal'
uses: ./.github/workflows/tag_release.yml
@@ -111,6 +111,28 @@ jobs:
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer
+ - name: Extract Asana Task ID
+ id: task-id
+ uses: ./.github/actions/asana-extract-task-id
+ with:
+ task-url: ${{ github.event.inputs.asana-task-url }}
+
+ - name: Fetch and validate release notes
+ env:
+ TASK_ID: ${{ steps.task-id.outputs.task-id }}
+ ASANA_ACCESS_TOKEN: ${{ secrets.ASANA_ACCESS_TOKEN }}
+ run: |
+ curl -fLSs "https://app.asana.com/api/1.0/tasks/${TASK_ID}?opt_fields=notes" \
+ -H "Authorization: Bearer ${ASANA_ACCESS_TOKEN}" \
+ | jq -r .data.notes \
+ | ./scripts/extract_release_notes.sh > release_notes.txt
+ release_notes="$(" ]]; then
+ echo "::error::Release notes are empty. Please add release notes to the Asana task and restart the workflow."
+ exit 1
+ fi
+ echo "RELEASE_NOTES_FILE=release_notes.txt" >> $GITHUB_ENV
+
- name: Set up Sparkle tools
env:
SPARKLE_URL: https://github.com/sparkle-project/Sparkle/releases/download/${{ vars.SPARKLE_VERSION }}/Sparkle-${{ vars.SPARKLE_VERSION }}.tar.xz
@@ -131,23 +153,6 @@ jobs:
echo "dmg-name=$DMG_NAME" >> $GITHUB_OUTPUT
echo "dmg-path=$DMG_NAME" >> $GITHUB_OUTPUT
- - name: Extract Asana Task ID
- id: task-id
- uses: ./.github/actions/asana-extract-task-id
- with:
- task-url: ${{ github.event.inputs.asana-task-url }}
-
- - name: Fetch release notes
- env:
- TASK_ID: ${{ steps.task-id.outputs.task-id }}
- ASANA_ACCESS_TOKEN: ${{ secrets.ASANA_ACCESS_TOKEN }}
- run: |
- curl -fLSs "https://app.asana.com/api/1.0/tasks/${TASK_ID}?opt_fields=notes" \
- -H "Authorization: Bearer ${ASANA_ACCESS_TOKEN}" \
- | jq -r .data.notes \
- | ./scripts/extract_release_notes.sh > release_notes.txt
- echo "RELEASE_NOTES_FILE=release_notes.txt" >> $GITHUB_ENV
-
- name: Generate appcast
id: appcast
env: