-
-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use fastlane for stable releases, too
This uses our new mail2webhook python script installed on the mailserver to trigger a workflow posting release information once the iOS build reaches the appstore.
- Loading branch information
1 parent
7833bc2
commit 4cde633
Showing
3 changed files
with
161 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
name: Publish release | ||
on: | ||
repository_dispatch: | ||
types: [distribution] | ||
jobs: | ||
extractChangelog: | ||
runs-on: self-hosted | ||
outputs: | ||
release-buildNumber: ${{ steps.releasenotes.outputs.buildNumber }} | ||
release-tag: ${{ steps.releasenotes.outputs.tag }} | ||
release-version: ${{ steps.releasenotes.outputs.version }} | ||
release-name: ${{ steps.releasenotes.outputs.name }} | ||
release-notes: ${{ steps.releasenotes.outputs.notes }} | ||
release-notes_ios: ${{ steps.releasenotes.outputs.notes_ios }} | ||
release-notes_macos: ${{ steps.releasenotes.outputs.notes_macos }} | ||
# create release only if the ios app made it to the appstore and ignore the macos appstore state | ||
if: github.event.client_payload.Platform == 'iOS' | ||
steps: | ||
# - run: | | ||
# echo ${{ github.event.client_payload.AppName }} | ||
# echo ${{ github.event.client_payload.Platform }} | ||
# echo ${{ github.event.client_payload.AppVersionNumber }} | ||
- name: Load release info | ||
id: releasenotes | ||
run: | | ||
buildNumber="$(fastlane run app_store_build_number api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" app_identifier:"G7YU7X7KRJ.SworIM" live:false version:"${{ github.event.client_payload.AppVersionNumber }}" 2>&1 | tee /dev/stderr | grep Result | sed -E 's/^.*Result: ([0-9]+).*$/\1/g')" | ||
mkdir -p /Users/ci/releases | ||
OUTPUT_FILE="/Users/ci/releases/$buildNumber.output" | ||
touch "$OUTPUT_FILE" | ||
cat "$OUTPUT_FILE" >> "$GITHUB_OUTPUT" | ||
PromoteDraftRelease: | ||
name: Promote draft release to live release | ||
runs-on: ubuntu-latest | ||
needs: [extractChangelog] | ||
steps: | ||
- name: Promote draft release to live release | ||
run: | | ||
echo "ID: ${{ steps.releasenotes.outputs.releaseID }}" | ||
curl -L \ | ||
-X PATCH \ | ||
-H "Accept: application/vnd.github+json" \ | ||
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | ||
-H "X-GitHub-Api-Version: 2022-11-28" \ | ||
"https://api.github.com/repos/${{ github.repository }}/releases/${{ steps.draftrelease.outputs.id }}" \ | ||
-d '{"draft": false, "prerelease": false, "make_latest": true}' | ||
notifyMuc: | ||
name: Notify support MUC about new stable release | ||
runs-on: ubuntu-latest | ||
needs: [extractChangelog] | ||
steps: | ||
- name: Notify support MUC | ||
uses: monal-im/xmpp-notifier@master | ||
with: # Set the secrets as inputs | ||
jid: ${{ secrets.BOT_JID }} | ||
password: ${{ secrets.BOT_PASSWORD }} | ||
server_host: ${{ secrets.BOT_SERVER }} | ||
recipient: [email protected] | ||
recipient_is_room: true | ||
bot_alias: "Monal Release Bot" | ||
message: | | ||
New stable release: ${{ needs.extractChangelog.outputs.release-name }} | ||
${{ needs.extractChangelog.outputs.release-notes }} | ||
notifyMastodon: | ||
name: Post release info on mastodon | ||
runs-on: ubuntu-latest | ||
needs: [extractChangelog] | ||
steps: | ||
- name: Post release info on mastodon | ||
id: toot | ||
uses: cbrgm/[email protected] | ||
with: | ||
access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} | ||
url: ${{ secrets.MASTODON_URL }} | ||
message: "${{ needs.extractChangelog.outputs.release-name }} released.\n\n${{ needs.extractChangelog.outputs.release-notes }}\n\n#xmpp #ios #macos" | ||
visibility: "public" | ||
language: "en" | ||
- name: Get toot information | ||
run: | | ||
echo "Toot ID: ${{ steps.toot.outputs.id }}" | ||
echo "Toot URL: ${{ steps.toot.outputs.url }}" | ||
echo "Scheduled at: ${{ steps.toot.outputs.scheduled_at }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters