From 694171195b837375385376f98e1f607b0ac3d949 Mon Sep 17 00:00:00 2001 From: Christian Hoffmann Date: Wed, 9 Mar 2022 09:49:09 +0100 Subject: [PATCH 1/3] Autobuild: Merge Mac build scripts - `diff -u autobuild/mac/{artifacts,codeQL}/autobuild_mac_1_prepare.sh` is empty. - `diff -u autobuild/mac/{artifacts,codeQL}/autobuild_mac_2_build.sh` contains extra logic for signing, but as this is controlled by a parameter, it is fine to merge anyway. - `autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh` does not exist for the CodeQL job (it's unused there). Therefore, it's safe to move those scripts one level up and drop all the duplication. That makes it consistent with all the other platforms as well. This commit moves the .sh files to their new location and adjusts a single line to account for the reduced nesting level. It also updates the callers to use the new paths. --- .github/workflows/autobuild.yml | 20 +++++------ .../autobuild_mac_1_prepare.sh | 0 .../{artifacts => }/autobuild_mac_2_build.sh | 2 +- .../autobuild_mac_3_copy_files.sh | 2 +- .../mac/codeQL/autobuild_mac_1_prepare.sh | 35 ------------------- autobuild/mac/codeQL/autobuild_mac_2_build.sh | 26 -------------- 6 files changed, 12 insertions(+), 73 deletions(-) rename autobuild/mac/{artifacts => }/autobuild_mac_1_prepare.sh (100%) rename autobuild/mac/{artifacts => }/autobuild_mac_2_build.sh (94%) rename autobuild/mac/{artifacts => }/autobuild_mac_3_copy_files.sh (92%) delete mode 100755 autobuild/mac/codeQL/autobuild_mac_1_prepare.sh delete mode 100755 autobuild/mac/codeQL/autobuild_mac_2_build.sh diff --git a/.github/workflows/autobuild.yml b/.github/workflows/autobuild.yml index 643a5570f7..dbfee9ea62 100644 --- a/.github/workflows/autobuild.yml +++ b/.github/workflows/autobuild.yml @@ -105,19 +105,19 @@ jobs: - config_name: MacOS (codeQL) target_os: macos building_on_os: macos-10.15 - cmd1_prebuild: "./autobuild/mac/codeQL/autobuild_mac_1_prepare.sh 5.15.2" - cmd2_build: "./autobuild/mac/codeQL/autobuild_mac_2_build.sh" + cmd1_prebuild: "./autobuild/mac/autobuild_mac_1_prepare.sh 5.15.2" + cmd2_build: "./autobuild/mac/autobuild_mac_2_build.sh" cmd3_postbuild: false run_codeql: true xcode_version: 12.1.1 - config_name: MacOS (artifacts) target_os: macos - # Stay on 10.15 as long as we use dmgbuild which does not work with 11's hdiutil (?) + # Stay on 10.15 as long as we use dmgbuild which does not work with 11's hdiutil (?): building_on_os: macos-10.15 - cmd1_prebuild: "./autobuild/mac/artifacts/autobuild_mac_1_prepare.sh 5.15.2" - cmd2_build: "./autobuild/mac/artifacts/autobuild_mac_2_build.sh sign_if_possible" - cmd3_postbuild: "./autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh" + cmd1_prebuild: "./autobuild/mac/autobuild_mac_1_prepare.sh 5.15.2" + cmd2_build: "./autobuild/mac/autobuild_mac_2_build.sh sign_if_possible" + cmd3_postbuild: "./autobuild/mac/autobuild_mac_3_copy_files.sh" run_codeql: false xcode_version: 12.1.1 @@ -133,9 +133,9 @@ jobs: - config_name: MacOS Legacy (artifacts) target_os: macos building_on_os: macos-10.15 - cmd1_prebuild: "./autobuild/mac/artifacts/autobuild_mac_1_prepare.sh 5.9.9" - cmd2_build: "./autobuild/mac/artifacts/autobuild_mac_2_build.sh do_not_sign" - cmd3_postbuild: "./autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh legacy" + cmd1_prebuild: "./autobuild/mac/autobuild_mac_1_prepare.sh 5.9.9" + cmd2_build: "./autobuild/mac/autobuild_mac_2_build.sh do_not_sign" + cmd3_postbuild: "./autobuild/mac/autobuild_mac_3_copy_files.sh legacy" run_codeql: false # For Qt5 on Mac, we need to ensure SDK 10.15 is used, and not SDK 11.x. # Xcode 12.1 is the most-recent release which still ships SDK 10.15: @@ -182,7 +182,7 @@ jobs: /usr/local/opt/qt ~/Library/Caches/pip ~/Library/Cache/jamulus-homebrew-bottles - key: ${{ matrix.config.target_os }}-${{ hashFiles('.github/workflows/autobuild.yml', 'autobuild/mac/artifacts/autobuild_mac_1_prepare.sh', 'autobuild/mac/codeQL/autobuild_mac_1_prepare.sh', 'mac/deploy_mac.sh') }}-${{ matrix.config.cmd1_prebuild }} + key: ${{ matrix.config.target_os }}-${{ hashFiles('.github/workflows/autobuild.yml', 'autobuild/mac/autobuild_mac_1_prepare.sh', 'mac/deploy_mac.sh') }}-${{ matrix.config.cmd1_prebuild }} - name: Cache Windows dependencies if: matrix.config.target_os == 'windows' diff --git a/autobuild/mac/artifacts/autobuild_mac_1_prepare.sh b/autobuild/mac/autobuild_mac_1_prepare.sh similarity index 100% rename from autobuild/mac/artifacts/autobuild_mac_1_prepare.sh rename to autobuild/mac/autobuild_mac_1_prepare.sh diff --git a/autobuild/mac/artifacts/autobuild_mac_2_build.sh b/autobuild/mac/autobuild_mac_2_build.sh similarity index 94% rename from autobuild/mac/artifacts/autobuild_mac_2_build.sh rename to autobuild/mac/autobuild_mac_2_build.sh index 8347bfe9b9..20a82573fd 100755 --- a/autobuild/mac/artifacts/autobuild_mac_2_build.sh +++ b/autobuild/mac/autobuild_mac_2_build.sh @@ -12,7 +12,7 @@ if [ -n "${SIGN}" ]; then shift fi -source "$(dirname "${BASH_SOURCE[0]}")/../../ensure_THIS_JAMULUS_PROJECT_PATH.sh" +source "$(dirname "${BASH_SOURCE[0]}")/../ensure_THIS_JAMULUS_PROJECT_PATH.sh" ################### ### PROCEDURE ### diff --git a/autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh b/autobuild/mac/autobuild_mac_3_copy_files.sh similarity index 92% rename from autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh rename to autobuild/mac/autobuild_mac_3_copy_files.sh index 32f4205e00..71aea38683 100755 --- a/autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh +++ b/autobuild/mac/autobuild_mac_3_copy_files.sh @@ -11,7 +11,7 @@ fi ### PARAMETERS ### #################### -source "$(dirname "${BASH_SOURCE[0]}")/../../ensure_THIS_JAMULUS_PROJECT_PATH.sh" +source "$(dirname "${BASH_SOURCE[0]}")/../ensure_THIS_JAMULUS_PROJECT_PATH.sh" ################### ### PROCEDURE ### diff --git a/autobuild/mac/codeQL/autobuild_mac_1_prepare.sh b/autobuild/mac/codeQL/autobuild_mac_1_prepare.sh deleted file mode 100755 index c71d9a4589..0000000000 --- a/autobuild/mac/codeQL/autobuild_mac_1_prepare.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/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 ### -################### - -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 desktop ${QT_VER} -fi - -# 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}/macos/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/mac/codeQL/autobuild_mac_2_build.sh b/autobuild/mac/codeQL/autobuild_mac_2_build.sh deleted file mode 100755 index 166a8f9660..0000000000 --- a/autobuild/mac/codeQL/autobuild_mac_2_build.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -# autobuild_2_build: actual build process - - -#################### -### PARAMETERS ### -#################### - -source "$(dirname "${BASH_SOURCE[0]}")/../../ensure_THIS_JAMULUS_PROJECT_PATH.sh" - -################### -### PROCEDURE ### -################### - -cd "${THIS_JAMULUS_PROJECT_PATH}" - - -echo "Building... qmake" -qmake - -echo "Building... make" -make -j "$(sysctl -n hw.ncpu)" - - -echo "Done" From 20f9b12603e54b9a8e6386ccf399b9c199c708be Mon Sep 17 00:00:00 2001 From: Christian Hoffmann Date: Wed, 9 Mar 2022 09:53:21 +0100 Subject: [PATCH 2/3] Autobuild: Move ios build scripts up one level There's no need to place the ios autobuild scripts in an "artifacts" sub directory. This was probably done as the ios build was likely based on the mac build logic. This commit moves the .sh files to their new location and adjusts a single line to account for the reduced nesting level. It also updates the callers to use the new paths. --- .github/workflows/autobuild.yml | 6 +++--- autobuild/ios/{artifacts => }/autobuild_ios_1_prepare.sh | 0 autobuild/ios/{artifacts => }/autobuild_ios_2_build.sh | 2 +- autobuild/ios/{artifacts => }/autobuild_ios_3_copy_files.sh | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename autobuild/ios/{artifacts => }/autobuild_ios_1_prepare.sh (100%) rename autobuild/ios/{artifacts => }/autobuild_ios_2_build.sh (89%) rename autobuild/ios/{artifacts => }/autobuild_ios_3_copy_files.sh (92%) diff --git a/.github/workflows/autobuild.yml b/.github/workflows/autobuild.yml index dbfee9ea62..036d3ff284 100644 --- a/.github/workflows/autobuild.yml +++ b/.github/workflows/autobuild.yml @@ -124,9 +124,9 @@ jobs: - 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" + 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" run_codeql: false xcode_version: 12.1.1 diff --git a/autobuild/ios/artifacts/autobuild_ios_1_prepare.sh b/autobuild/ios/autobuild_ios_1_prepare.sh similarity index 100% rename from autobuild/ios/artifacts/autobuild_ios_1_prepare.sh rename to autobuild/ios/autobuild_ios_1_prepare.sh diff --git a/autobuild/ios/artifacts/autobuild_ios_2_build.sh b/autobuild/ios/autobuild_ios_2_build.sh similarity index 89% rename from autobuild/ios/artifacts/autobuild_ios_2_build.sh rename to autobuild/ios/autobuild_ios_2_build.sh index a388838b79..5a7662eea0 100755 --- a/autobuild/ios/artifacts/autobuild_ios_2_build.sh +++ b/autobuild/ios/autobuild_ios_2_build.sh @@ -8,7 +8,7 @@ #################### -source "$(dirname "${BASH_SOURCE[0]}")/../../ensure_THIS_JAMULUS_PROJECT_PATH.sh" +source "$(dirname "${BASH_SOURCE[0]}")/../ensure_THIS_JAMULUS_PROJECT_PATH.sh" ################### ### PROCEDURE ### diff --git a/autobuild/ios/artifacts/autobuild_ios_3_copy_files.sh b/autobuild/ios/autobuild_ios_3_copy_files.sh similarity index 92% rename from autobuild/ios/artifacts/autobuild_ios_3_copy_files.sh rename to autobuild/ios/autobuild_ios_3_copy_files.sh index 69576ffe78..5d59791a2b 100755 --- a/autobuild/ios/artifacts/autobuild_ios_3_copy_files.sh +++ b/autobuild/ios/autobuild_ios_3_copy_files.sh @@ -11,7 +11,7 @@ fi ### PARAMETERS ### #################### -source "$(dirname "${BASH_SOURCE[0]}")/../../ensure_THIS_JAMULUS_PROJECT_PATH.sh" +source "$(dirname "${BASH_SOURCE[0]}")/../ensure_THIS_JAMULUS_PROJECT_PATH.sh" ################### ### PROCEDURE ### From 729bbd8f0b54a365c546efe6099340d7a61605b3 Mon Sep 17 00:00:00 2001 From: Christian Hoffmann Date: Wed, 9 Mar 2022 09:58:07 +0100 Subject: [PATCH 3/3] Autobuild: Drop extra Mac codeQL step All other platforms run codeQL as part of their regular build. This increases the time until artifacts are available, but avoids having to build each job twice. We should handle codeQL consistenly. --- .github/workflows/autobuild.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/autobuild.yml b/.github/workflows/autobuild.yml index 036d3ff284..3d7509066c 100644 --- a/.github/workflows/autobuild.yml +++ b/.github/workflows/autobuild.yml @@ -102,23 +102,14 @@ jobs: cmd3_postbuild: "./autobuild/linux/autobuild_deb_3_copy_files.sh" run_codeql: true - - config_name: MacOS (codeQL) - target_os: macos - building_on_os: macos-10.15 - cmd1_prebuild: "./autobuild/mac/autobuild_mac_1_prepare.sh 5.15.2" - cmd2_build: "./autobuild/mac/autobuild_mac_2_build.sh" - cmd3_postbuild: false - run_codeql: true - xcode_version: 12.1.1 - - - config_name: MacOS (artifacts) + - config_name: MacOS (artifacts+codeQL) target_os: macos # Stay on 10.15 as long as we use dmgbuild which does not work with 11's hdiutil (?): building_on_os: macos-10.15 cmd1_prebuild: "./autobuild/mac/autobuild_mac_1_prepare.sh 5.15.2" cmd2_build: "./autobuild/mac/autobuild_mac_2_build.sh sign_if_possible" cmd3_postbuild: "./autobuild/mac/autobuild_mac_3_copy_files.sh" - run_codeql: false + run_codeql: true xcode_version: 12.1.1 - config_name: iOS (artifacts)