diff --git a/.github/workflows/autobuild.yml b/.github/workflows/autobuild.yml index 1c106f11ff..692c770949 100644 --- a/.github/workflows/autobuild.yml +++ b/.github/workflows/autobuild.yml @@ -128,6 +128,15 @@ jobs: uses_codeql: false xcode_version: 12.1.1 + - config_name: iOS (artifacts) + target_os: ios + building_on_os: macos-10.15 + cmd1_prebuild: "./autobuild/ios/artifacts/autobuild_ios_1_prepare.sh 5.15.2" + cmd2_build: "./autobuild/ios/artifacts/autobuild_ios_2_build.sh" + cmd3_postbuild: "./autobuild/ios/artifacts/autobuild_ios_3_copy_files.sh" + uses_codeql: false + xcode_version: 12.1.1 + - config_name: MacOS Legacy (artifacts) target_os: macos building_on_os: macos-10.15 @@ -162,7 +171,7 @@ jobs: steps: - name: Select Xcode version for Mac - if: ${{ matrix.config.target_os == 'macos' }} + if: ${{ matrix.config.target_os == 'macos' || matrix.config.target_os == 'ios' }} uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: ${{ matrix.config.xcode_version }} diff --git a/autobuild/ios/artifacts/autobuild_ios_1_prepare.sh b/autobuild/ios/artifacts/autobuild_ios_1_prepare.sh new file mode 100755 index 0000000000..3a92c7c1b5 --- /dev/null +++ b/autobuild/ios/artifacts/autobuild_ios_1_prepare.sh @@ -0,0 +1,31 @@ +#!/bin/bash -e + +# autobuild_1_prepare: set up environment, install Qt & dependencies + +if [ "$#" -ne "1" ]; then + echo "need to specify Qt version" + exit 1 +fi + +QT_DIR=/usr/local/opt/qt +QT_VER=$1 +AQTINSTALL_VERSION=2.0.5 + +################### +### PROCEDURE ### +################### + +echo "Install dependencies..." +python3 -m pip install "aqtinstall==${AQTINSTALL_VERSION}" +python3 -m aqt install-qt --outputdir "${QT_DIR}" mac ios ${QT_VER} + +# Add the qt binaries to the PATH. +# The clang_64 entry can be dropped when Qt <6.2 compatibility is no longer needed. +for qt_path in "${QT_DIR}"/${QT_VER}/ios/bin "${QT_DIR}"/${QT_VER}/clang_64/bin; do + if [[ -d $qt_path ]]; then + export -p PATH="${qt_path}:${PATH}" + break + fi +done +echo "::set-env name=PATH::${PATH}" +echo "the path is ${PATH}" diff --git a/autobuild/ios/artifacts/autobuild_ios_2_build.sh b/autobuild/ios/artifacts/autobuild_ios_2_build.sh new file mode 100755 index 0000000000..a388838b79 --- /dev/null +++ b/autobuild/ios/artifacts/autobuild_ios_2_build.sh @@ -0,0 +1,27 @@ +#!/bin/sh -e + +# autobuild_2_build: actual build process + + +#################### +### PARAMETERS ### +#################### + + +source "$(dirname "${BASH_SOURCE[0]}")/../../ensure_THIS_JAMULUS_PROJECT_PATH.sh" + +################### +### PROCEDURE ### +################### + +cd "${THIS_JAMULUS_PROJECT_PATH}" + +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 +# Make a deploy folder +mkdir deploy +# Generate ipa by copying the .app file from the xcarchive file +mkdir deploy/Payload +cp -r build/Jamulus.xcarchive/Products/Applications/Jamulus.app deploy/Payload/ +cd deploy +zip -0 -y -r Jamulus.ipa Payload/ diff --git a/autobuild/ios/artifacts/autobuild_ios_3_copy_files.sh b/autobuild/ios/artifacts/autobuild_ios_3_copy_files.sh new file mode 100755 index 0000000000..69576ffe78 --- /dev/null +++ b/autobuild/ios/artifacts/autobuild_ios_3_copy_files.sh @@ -0,0 +1,48 @@ +#!/bin/sh -e + +# autobuild_3_copy_files: copy the built files to deploy folder + +if [ "$#" -gt 1 ]; then + BUILD_SUFFIX=_$1 + shift +fi + +#################### +### PARAMETERS ### +#################### + +source "$(dirname "${BASH_SOURCE[0]}")/../../ensure_THIS_JAMULUS_PROJECT_PATH.sh" + +################### +### PROCEDURE ### +################### + +cd "${THIS_JAMULUS_PROJECT_PATH}" + +echo "" +echo "" +echo "ls GITROOT/deploy/" +ls "${THIS_JAMULUS_PROJECT_PATH}"/deploy/ +echo "" + +echo "" +echo "" +artifact_deploy_filename=jamulus_${jamulus_buildversionstring}_iOSUnsigned${BUILD_SUFFIX}.ipa +echo "Move/Rename the built file to deploy/${artifact_deploy_filename}" +mv "${THIS_JAMULUS_PROJECT_PATH}"/deploy/Jamulus.ipa "${THIS_JAMULUS_PROJECT_PATH}"/deploy/"${artifact_deploy_filename}" + + +echo "" +echo "" +echo "ls GITROOT/deploy/" +ls "${THIS_JAMULUS_PROJECT_PATH}"/deploy/ +echo "" + + +github_output_value() +{ + echo "github_output_value() ${1} = ${2}" + echo "::set-output name=${1}::${2}" +} + +github_output_value artifact_1 ${artifact_deploy_filename}