82 lines
3.4 KiB
YAML
82 lines
3.4 KiB
YAML
name: release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v[0-9]+.[0-9]+.[0-9]+-mas.[0-9]+"
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
env:
|
|
TERM: xterm
|
|
MM_WIN_INSTALLERS: 1
|
|
|
|
jobs:
|
|
begin-notification:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: release/checkout-repo
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
- name: release/notify-channel
|
|
run: |
|
|
jq --null-input \
|
|
--arg icon_url "https://mattermost.com/wp-content/uploads/2022/02/icon.png" \
|
|
--arg username "MattermostRelease" \
|
|
--arg text "[$(jq -r .version package.json)] Release process for the desktop app has started, it should take about 30 minutes to complete." \
|
|
'{"username":$username,"icon_url": $icon_url, "text": $text }' > /tmp/webhook-data.json
|
|
curl -i -H "Content-Type: application/json" -X POST -d @/tmp/webhook-data.json ${{ secrets.MM_DESKTOP_RELEASE_WEBHOOK_URL }} || echo "NOFICATION FAILED! check logs as this will succeed intentionally"
|
|
|
|
mac-app-store-preflight:
|
|
runs-on: macos-12
|
|
needs:
|
|
- begin-notification
|
|
env:
|
|
MAS_PROFILE: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MAS_PROFILE }}
|
|
MACOS_API_KEY_ID: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MACOS_API_KEY_ID }}
|
|
MACOS_API_KEY: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MACOS_API_KEY }}
|
|
MACOS_API_ISSUER_ID: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MACOS_API_ISSUER_ID }}
|
|
CSC_FOR_PULL_REQUEST: true
|
|
CSC_KEY_PASSWORD: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_CSC_KEY_PASSWORD}}
|
|
CSC_LINK: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_CSC_LINK }}
|
|
steps:
|
|
- name: release/checkout-repo
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
- name: release/setup-node
|
|
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
|
with:
|
|
node-version-file: "package.json"
|
|
cache: "npm"
|
|
cache-dependency-path: package-lock.json
|
|
- name: release/install-dependencies
|
|
run: |
|
|
brew install yq
|
|
npm ci
|
|
- name: release/copy-provisioning-profile
|
|
run: echo $MAS_PROFILE | base64 -D > ./mas.provisionprofile
|
|
- name: release/patch-version-number-for-MAS
|
|
run: ./scripts/patch_mas_version.sh
|
|
- name: release/test
|
|
uses: ./.github/actions/test
|
|
- name: release/package
|
|
run: npm run package:mas
|
|
- name: release/publish
|
|
run: fastlane publish_test path:"$(find . -name \*.pkg -print -quit)"
|
|
|
|
end-notification:
|
|
runs-on: ubuntu-22.04
|
|
needs:
|
|
- mac-app-store-preflight
|
|
steps:
|
|
- name: release/checkout-repo
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
- name: release/notify-channel
|
|
run: |
|
|
jq --null-input \
|
|
--arg icon_url "https://mattermost.com/wp-content/uploads/2022/02/icon.png" \
|
|
--arg username "MattermostRelease" \
|
|
--arg text "[$(jq -r .version package.json)] Release process for the desktop app ended, the new release can be found on [GitHub](https://github.com/mattermost/desktop/releases)." \
|
|
'{"username":$username,"icon_url": $icon_url, "text": $text }' > /tmp/webhook-data.json
|
|
curl -i -H "Content-Type: application/json" -X POST -d @/tmp/webhook-data.json ${{ secrets.MM_DESKTOP_RELEASE_WEBHOOK_URL }} || echo "NOFICATION FAILED! check logs as this will succeed intentionally"
|