-
-
Notifications
You must be signed in to change notification settings - Fork 108
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a027044
commit 67a34fc
Showing
3 changed files
with
163 additions
and
121 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -41,7 +41,7 @@ jobs: | |
run: git submodule update -f --init --remote | ||
- name: Get last build tag and increment it | ||
run: | | ||
oldBuildNumber=$(git tag --sort="v:refname" |grep "Build_iOS" | tail -n1 | sed 's/Build_iOS_//g') | ||
oldBuildNumber=$(git tag --sort="v:refname" | grep "Build_iOS" | grep -v "Quicksy_Build_iOS" | tail -n1 | sed 's/Build_iOS_//g') | ||
buildNumber=$(expr $oldBuildNumber + 1) | ||
echo "New buildNumber is $buildNumber" | ||
git tag Build_iOS_$buildNumber | ||
|
@@ -64,7 +64,7 @@ jobs: | |
printf("\n") | ||
}' | ||
} | ||
buildNumber="$(git tag --sort="v:refname" | grep "Build_iOS" | tail -n1 | sed 's/Build_iOS_//g')" | ||
buildNumber="$(git tag --sort="v:refname" | grep "Build_iOS" | grep -v "Quicksy_Build_iOS" | tail -n1 | sed 's/Build_iOS_//g')" | ||
version="$(git log -n 1 --merges --pretty=format:%s | sed -E 's/^[\t\n ]*([^\n\t ]+)[\t\n ]+\(([^\n\t ]+)\)[\t\n ]*$/\1/g')" | ||
mkdir -p /Users/ci/releases | ||
OUTPUT_FILE="/Users/ci/releases/$buildNumber.output" | ||
|
@@ -105,58 +105,98 @@ jobs: | |
run: chmod +x ./scripts/build.sh | ||
- name: Run build | ||
run: ./scripts/build.sh | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: monal-ios | ||
path: Monal/build/ipa/Monal.ipa | ||
if-no-files-found: error | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: monal-catalyst-dsym | ||
path: Monal/build/macos_Monal.xcarchive/dSYMs | ||
if-no-files-found: error | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: monal-ios-dsym | ||
path: Monal/build/ios_Monal.xcarchive/dSYMs | ||
if-no-files-found: error | ||
# - uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: monal-ios | ||
# path: Monal/build/ipa/Monal.ipa | ||
# if-no-files-found: error | ||
# - uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: monal-catalyst-dsym | ||
# path: Monal/build/macos_Monal.xcarchive/dSYMs | ||
# if-no-files-found: error | ||
# - uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: monal-ios-dsym | ||
# path: Monal/build/ios_Monal.xcarchive/dSYMs | ||
# if-no-files-found: error | ||
- name: validate ios app | ||
run: xcrun altool --validate-app --file ./Monal/build/ipa/Monal.ipa --type ios --asc-provider S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)" | ||
- name: Push beta tag to repo | ||
run: | | ||
buildNumber=$(git tag --sort="v:refname" | grep "Build_iOS" | tail -n1 | sed 's/Build_iOS_//g') | ||
buildNumber=$(git tag --sort="v:refname" | grep "Build_iOS" | grep -v "Quicksy_Build_iOS" | tail -n1 | sed 's/Build_iOS_//g') | ||
git push origin Build_iOS_$buildNumber | ||
- name: Create fastlane whatsNew hash in environment | ||
id: buildinfo | ||
env: | ||
CHANGELOG_IOS: ${{ steps.releasenotes.outputs.notes_ios }} | ||
CHANGELOG_MACOS: ${{ steps.releasenotes.outputs.notes_macos }} | ||
run: | | ||
get_changelog() { | ||
local escaped=$(printf '%s\n' "$1" | jq -sRr @json) | ||
local json="{\"default\":{\"whats_new\":$escaped}," | ||
for dir in ./appstore_metadata/*/; do | ||
dir="$(basename "$dir")" | ||
if [[ -d "./appstore_metadata/$dir" && "$dir" == *-* ]]; then | ||
json="$json\"${dir%/}\":{\"whats_new\":$escaped}," | ||
fi | ||
done | ||
json="${json%,}}" | ||
echo "$json" | ||
} | ||
echo "buildinfo_ios<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
echo "$(get_changelog "$CHANGELOG_IOS")" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
echo "buildinfo_macos<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
echo "$(get_changelog "$CHANGELOG_MACOS")" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# - name: Create fastlane whatsNew hash in environment | ||
# id: buildinfo | ||
# env: | ||
# CHANGELOG_IOS: ${{ steps.releasenotes.outputs.notes_ios }} | ||
# CHANGELOG_MACOS: ${{ steps.releasenotes.outputs.notes_macos }} | ||
# run: | | ||
# get_changelog() { | ||
# local escaped=$(printf '%s\n' "$1" | jq -sRr @json) | ||
# local json="{\"default\": {\"whats_new\": $escaped}," | ||
# # for dir in ./appstore_metadata/*/; do | ||
# # dir="$(basename "$dir")" | ||
# # if [[ -d "./appstore_metadata/$dir" && "$dir" == *-* ]]; then | ||
# # json="$json\"${dir%/}\": {\"whats_new\": $escaped}," | ||
# # fi | ||
# # done | ||
# json="${json%,}}" | ||
# echo "$json" | ||
# } | ||
# echo "buildinfo_ios<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "$(get_changelog "$CHANGELOG_IOS")" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# | ||
# echo "buildinfo_macos<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "$(get_changelog "$CHANGELOG_MACOS")" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# - name: Create fastlane localized_app_info hash in environment | ||
# id: appinfo | ||
# run: | | ||
# get_changelog() { | ||
# local escaped=$(printf '%s\n' "$1" | jq -sRr @json) | ||
# local json="{\"default\": {\"whats_new\": $escaped}," | ||
# # for dir in ./appstore_metadata/*/; do | ||
# # dir="$(basename "$dir")" | ||
# # if [[ -d "./appstore_metadata/$dir" && "$dir" == *-* ]]; then | ||
# # json="$json\"${dir%/}\": {\"whats_new\": $escaped}," | ||
# # fi | ||
# # done | ||
# json="${json%,}}" | ||
# echo "$json" | ||
# } | ||
# | ||
# echo "buildinfo_ios<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "$(get_changelog "$CHANGELOG_IOS")" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# | ||
# echo "buildinfo_macos<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "$(get_changelog "$CHANGELOG_MACOS")" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT" | ||
# localized_app_info: { | ||
# "default": { | ||
# feedback_email: "[email protected]", | ||
# marketing_url: "https://example.com/marketing-default", | ||
# privacy_policy_url: "https://example.com/privacy-default", | ||
# description: "Default description", | ||
# }, | ||
# "en-GB": { | ||
# feedback_email: "[email protected]", | ||
# marketing_url: "https://example.com/marketing-en-gb", | ||
# privacy_policy_url: "https://example.com/privacy-en-gb", | ||
# description: "en-gb description", | ||
# } | ||
# }, | ||
- name: Publish ios to appstore connect | ||
#run: xcrun altool --upload-app -f ./Monal/build/ipa/Monal.ipa --type ios --asc-provider S8D843U34Y --team-id S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)" | ||
env: | ||
PILOT_LOCALIZED_BUILD_INFO: ${{ steps.buildinfo.outputs.buildinfo_ios }} | ||
#PILOT_LOCALIZED_BUILD_INFO: ${{ steps.buildinfo.outputs.buildinfo_ios }} | ||
#PILOT_LOCALIZED_APP_INFO: ${{ steps.appinfo.outputs.appinfo }} | ||
PILOT_CHANGELOG: ${{ steps.releasenotes.outputs.notes_ios }} | ||
#fastlane run upload_to_testflight api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" ipa:"./Monal/build/ipa/Monal.ipa" distribute_external:true groups:"Internal Pre-Beta Testers","Public Beta" reject_build_waiting_for_review:true submit_beta_review:true | ||
run: | | ||
fastlane run upload_to_testflight api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" ipa:"./Monal/build/ipa/Monal.ipa" distribute_external:true groups:"Internal Pre-Beta Testers","Public Beta" reject_build_waiting_for_review:true submit_beta_review:true | ||
fastlane run upload_to_testflight api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" ipa:"./Monal/build/ipa/Monal.ipa" distribute_external:true notify_external_testers:true groups:"Internal Pre-Beta Testers" reject_build_waiting_for_review:true submit_beta_review:true --verbose | ||
- name: Notarize catalyst | ||
run: xcrun notarytool submit ./Monal/build/app/Monal.zip --wait --team-id S8D843U34Y --key "/Users/ci/appstoreconnect/apiKey.p8" --key-id "$(cat /Users/ci/appstoreconnect/apiKeyId.txt)" --issuer "$(cat /Users/ci/appstoreconnect/apiIssuerId.txt)" | ||
- name: staple | ||
|
@@ -166,77 +206,78 @@ jobs: | |
stapler validate "$APP_DIR" | ||
/usr/bin/ditto -c -k --sequesterRsrc --keepParent "$APP_DIR" "../$APP_NAME.zip" | ||
cd ../../../.. | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: monal-catalyst-zip | ||
path: Monal/build/app/Monal.zip | ||
if-no-files-found: error | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: monal-catalyst-pkg | ||
path: Monal/build/app/Monal.pkg | ||
if-no-files-found: error | ||
- name: Upload new catalyst beta to monal-im.org | ||
run: ./scripts/uploadNonAlpha.sh beta | ||
# - uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: monal-catalyst-zip | ||
# path: Monal/build/app/Monal.zip | ||
# if-no-files-found: error | ||
# - uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: monal-catalyst-pkg | ||
# path: Monal/build/app/Monal.pkg | ||
# if-no-files-found: error | ||
# - name: Upload new catalyst beta to monal-im.org | ||
# run: ./scripts/uploadNonAlpha.sh beta | ||
- name: Publish catalyst to appstore connect | ||
#run: xcrun altool --upload-app --file ./Monal/build/app/Monal.pkg --type macos --asc-provider S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)" --primary-bundle-id org.monal-im.prod.catalyst.monal | ||
env: | ||
PILOT_LOCALIZED_BUILD_INFO: ${{ steps.buildinfo.outputs.buildinfo_macos }} | ||
run: | | ||
fastlane run upload_to_testflight api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" pkg:"./Monal/build/app/Monal.pkg" distribute_external:true groups:"Internal Pre-Beta Testers","Public Beta" reject_build_waiting_for_review:true submit_beta_review:true | ||
- name: Release | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
name: "${{ steps.releasenotes.outputs.name }}" | ||
tag_name: "${{ steps.releasenotes.outputs.tag }}" | ||
target_commitish: beta | ||
generate_release_notes: false | ||
body: "${{ steps.releasenotes.outputs.notes }}" | ||
files: | | ||
./Monal/build/ipa/Monal.ipa | ||
./Monal/build/app/Monal.pkg | ||
./Monal/build/app/Monal.zip | ||
fail_on_unmatched_files: true | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
draft: false | ||
prerelease: true | ||
|
||
updateTranslations: | ||
name: Update Translations using Beta-Branch | ||
runs-on: self-hosted | ||
needs: [buildAndPublishBeta] | ||
env: | ||
APP_NAME: "Monal" | ||
APP_DIR: "Monal.app" | ||
BUILD_TYPE: "Beta" | ||
# Steps represent a sequence of tasks that will be executed as part of the job | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
clean: true | ||
submodules: true | ||
- name: Checkout submodules | ||
run: git submodule update -f --init --remote | ||
- name: Update translations | ||
#PILOT_LOCALIZED_BUILD_INFO: ${{ steps.buildinfo.outputs.buildinfo_macos }} | ||
PILOT_CHANGELOG: ${{ steps.releasenotes.outputs.notes_macos }} | ||
run: | | ||
chmod +x ./scripts/updateLocalization.sh | ||
chmod +x ./scripts/xliff_extractor.py | ||
./scripts/updateLocalization.sh BUILDSERVER | ||
fastlane run upload_to_testflight api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" pkg:"./Monal/build/app/Monal.pkg" distribute_external:true notify_external_testers:true groups:"Internal Pre-Beta Testers" reject_build_waiting_for_review:true submit_beta_review:true --verbose | ||
# - name: Release | ||
# uses: softprops/action-gh-release@v2 | ||
# with: | ||
# name: "${{ steps.releasenotes.outputs.name }}" | ||
# tag_name: "${{ steps.releasenotes.outputs.tag }}" | ||
# target_commitish: beta | ||
# generate_release_notes: false | ||
# body: "${{ steps.releasenotes.outputs.notes }}" | ||
# files: | | ||
# ./Monal/build/ipa/Monal.ipa | ||
# ./Monal/build/app/Monal.pkg | ||
# ./Monal/build/app/Monal.zip | ||
# fail_on_unmatched_files: true | ||
# token: ${{ secrets.GITHUB_TOKEN }} | ||
# draft: false | ||
# prerelease: true | ||
|
||
notifyMuc: | ||
name: Notify support MUC about new Betarelease | ||
runs-on: ubuntu-latest | ||
needs: [buildAndPublishBeta] | ||
steps: | ||
- name: Notify | ||
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.buildAndPublishBeta.outputs.release-name }} was released | ||
${{ needs.buildAndPublishBeta.outputs.release-notes }} | ||
# updateTranslations: | ||
# name: Update Translations using Beta-Branch | ||
# runs-on: self-hosted | ||
# needs: [buildAndPublishBeta] | ||
# env: | ||
# APP_NAME: "Monal" | ||
# APP_DIR: "Monal.app" | ||
# BUILD_TYPE: "Beta" | ||
# # Steps represent a sequence of tasks that will be executed as part of the job | ||
# steps: | ||
# - uses: actions/checkout@v4 | ||
# with: | ||
# clean: true | ||
# submodules: true | ||
# - name: Checkout submodules | ||
# run: git submodule update -f --init --remote | ||
# - name: Update translations | ||
# run: | | ||
# chmod +x ./scripts/updateLocalization.sh | ||
# chmod +x ./scripts/xliff_extractor.py | ||
# ./scripts/updateLocalization.sh BUILDSERVER | ||
# | ||
# notifyMuc: | ||
# name: Notify support MUC about new Betarelease | ||
# runs-on: ubuntu-latest | ||
# needs: [buildAndPublishBeta] | ||
# steps: | ||
# - name: Notify | ||
# 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.buildAndPublishBeta.outputs.release-name }} was released | ||
# ${{ needs.buildAndPublishBeta.outputs.release-notes }} |
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