Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/autobuild/ios.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/bin/bash
set -eu

QT_DIR=/usr/local/opt/qt
AQTINSTALL_VERSION=2.0.6

if [[ ! ${QT_VERSION:-} =~ [0-9]+\.[0-9]+\..* ]]; then
echo "Environment variable QT_VERSION must be set to a valid Qt version"
exit 1
fi
if [[ ! ${jamulus_buildversionstring:-} =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then
echo "Environment variable jamulus_buildversionstring has to be set to a valid version string"
exit 1
fi

setup() {
if [[ -d "${QT_DIR}" ]]; then
echo "Using Qt installation from previous run (actions/cache)"
else
echo "Install dependencies..."
python3 -m pip install "aqtinstall==${AQTINSTALL_VERSION}"
python3 -m aqt install-qt --outputdir "${QT_DIR}" mac ios "${QT_VERSION}" --archives qtbase qttools qttranslations qtmacextras
fi
}

build_app_as_ipa() {
# Add the Qt binaries to the PATH:
export PATH="${QT_DIR}/${QT_VERSION}/ios/bin:${PATH}"
./ios/deploy_ios.sh
}

pass_artifact_to_job() {
artifact_deploy_filename="jamulus_${jamulus_buildversionstring}_iOSUnsigned${ARTIFACT_SUFFIX:-1}.ipa"
echo "Moving build artifact to deploy/${artifact_deploy_filename}"
mv ./deploy/Jamulus.ipa "./deploy/${artifact_deploy_filename}"
echo "::set-output name=artifact_1::${artifact_deploy_filename}"
}

case "${1:-}" in
setup)
setup
;;
build)
build_app_as_ipa
;;
get-artifacts)
pass_artifact_to_job
;;
*)
echo "Unknown stage '${1:-}'"
exit 1
esac
6 changes: 3 additions & 3 deletions .github/workflows/autobuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,9 @@ jobs:
- config_name: iOS (artifacts)
target_os: ios
building_on_os: macos-10.15
cmd1_prebuild: "./autobuild/ios/autobuild_ios_1_prepare.sh 5.15.2"
cmd2_build: "./autobuild/ios/autobuild_ios_2_build.sh"
cmd3_postbuild: "./autobuild/ios/autobuild_ios_3_copy_files.sh"
cmd1_prebuild: "QT_VERSION=5.15.2 ./.github/autobuild/ios.sh setup"
cmd2_build: "QT_VERSION=5.15.2 ./.github/autobuild/ios.sh build"
cmd3_postbuild: "QT_VERSION=5.15.2 ./.github/autobuild/ios.sh get-artifacts"
# Build failed with CodeQL enabled when last tested 03/2022 (#2490).
# There are no hints that iOS is supposed to be supported by CodeQL.
# Therefore, disable it:
Expand Down
31 changes: 0 additions & 31 deletions autobuild/ios/autobuild_ios_1_prepare.sh

This file was deleted.

27 changes: 0 additions & 27 deletions autobuild/ios/autobuild_ios_2_build.sh

This file was deleted.

48 changes: 0 additions & 48 deletions autobuild/ios/autobuild_ios_3_copy_files.sh

This file was deleted.

18 changes: 18 additions & 0 deletions ios/deploy_ios.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash
set -eu

## Builds an ipa file for iOS. Should be run from the repo-root

# Create Xcode file and build
qmake -spec macx-xcode Jamulus.pro
/usr/bin/xcodebuild -project Jamulus.xcodeproj -scheme Jamulus -configuration Release clean archive -archivePath "build/Jamulus.xcarchive" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

# Generate ipa by copying the .app file from the xcarchive directory
mkdir build/Payload
cp -r build/Jamulus.xcarchive/Products/Applications/Jamulus.app build/Payload/
cd build
zip -0 -y -r Jamulus.ipa Payload/

# Make a deploy folder and copy file
mkdir ../deploy
mv Jamulus.ipa ../deploy