Skip to content

monal_release

monal_release #17

name: Publish release
on:
repository_dispatch:
types: [monal_release]
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 }}
release-id: ${{ steps.releasenotes.outputs.releaseID }}
# 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: ${{ needs.extractChangelog.outputs.release-id }}"
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/${{ needs.extractChangelog.outputs.release-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: |
# ${{ needs.extractChangelog.outputs.release-name }} was released:
# ${{ needs.extractChangelog.outputs.release-notes }}
#
# notifyMastodon:
# name: Post release info on mastodon
# runs-on: ubuntu-latest
# needs: [extractChangelog]
# steps:
# - name: Patch changelog length
# id: changelog
# env:
# NOTES: ${{ needs.extractChangelog.outputs.release-notes }}
# run: |
# if [ "${#NOTES}" -gt 400 ]; then
# NOTES="To see the complete list of bugfixes and improvements, check our releases page: https://github.com/monal-im/Monal/releases/tag/${{ needs.extractChangelog.outputs.release-tag }}"
# fi
# echo "notes<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT"
# echo "$NOTES" >> "$GITHUB_OUTPUT"
# echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT"
# - 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${{ steps.changelog.outputs.notes }}\n\n#Monal #ios #macos #xmpp #im #chat #messaging"
# 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 }}"