From d233dbc4ca84cd4a619b52aa92b130e66104a567 Mon Sep 17 00:00:00 2001 From: phnzb Date: Wed, 27 Mar 2024 12:12:04 +0000 Subject: [PATCH 1/3] Update macos x64 build script / workflow / docs --- .github/workflows/osx.yml | 17 +++++++---------- osx/build-info.md | 7 ++++--- osx/build-nzbget-x64.sh | 37 ++++++++++++++++++++----------------- 3 files changed, 31 insertions(+), 30 deletions(-) diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index 80ba53624..f4dcea9ff 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -15,21 +15,18 @@ jobs: with: fetch-depth: 0 - - name: Change version for non-release - if: github.ref_name != 'main' - run: | - VERSION=$(grep "set(VERSION" CMakeLists.txt | cut -d '"' -f 2) - NEW_VERSION="$VERSION-testing-$(date '+%Y%m%d')" - echo NEW_VERSION=$NEW_VERSION >> $GITHUB_ENV - - name: Build run: | - bash osx/build-nzbget-x64.sh + if [ "$GITHUB_REF_NAME" != "main" ]; then + bash osx/build-nzbget-x64.sh testing + else + bash osx/build-nzbget-x64.sh + fi - name: Rename build artifacts if: github.ref_name != 'main' && github.ref_name != 'develop' run: | - cd tmp + cd build NEW_VERSION_FEATURE="$NEW_VERSION-${GITHUB_REF_NAME/\//-}" for FILE in *.zip; do [ -f $FILE ] || continue @@ -41,7 +38,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: nzbget-osx-installers-x64 - path: tmp/*.zip + path: build/*.zip retention-days: 5 build-universal: diff --git a/osx/build-info.md b/osx/build-info.md index df5206f3a..8837a9782 100644 --- a/osx/build-info.md +++ b/osx/build-info.md @@ -52,9 +52,10 @@ xcode-select --install ### Building NZBGet From cloned repository run ``` -bash osx/build-nzbget-x64.sh +bash osx/build-nzbget-x64.sh [testing] ``` +- `testing` - build testing package (add VersionSuffix=`-testing-$yyyyMMdd` to package version) ### Output files -- tmp/osx/build/Release/NZBGet.app - application -- tmp/nzbget-$VERSION-bin-macos-x64.zip - release archive \ No newline at end of file +- build/nzbget/osx/build/Release/NZBGet.app - application +- build/nzbget-$VERSION-bin-macos-x64.zip - release archive diff --git a/osx/build-nzbget-x64.sh b/osx/build-nzbget-x64.sh index ce18f1612..af6331e31 100644 --- a/osx/build-nzbget-x64.sh +++ b/osx/build-nzbget-x64.sh @@ -1,6 +1,7 @@ #!/bin/sh # strict error handling for debugging +set -o nounset set -o errexit # config variables @@ -15,34 +16,36 @@ JOBS=$(sysctl -n hw.ncpu) # create directories and cleanup mkdir -p build -mkdir -p tmp rm -rf build/* -rm -rf tmp/* +NZBGET_PATH=build/nzbget +BUILD_PATH=build/release64 +mkdir $NZBGET_PATH +mkdir $BUILD_PATH export LIBS="-liconv -lncurses $LIB_PATH/libboost_json.a $LIB_PATH/libxml2.a $LIB_PATH/libz.a $LIB_PATH/libssl.a $LIB_PATH/libcrypto.a $LIB_PATH/liblzma.a" export INCLUDES="$INCLUDE_PATH/;$INCLUDE_PATH/libxml2/" -VERSION=$(grep "set(VERSION" CMakeLists.txt | cut -d '"' -f 2) +VERSION=$(grep "set(VERSION " CMakeLists.txt | cut -d '"' -f 2) +VERSION_SUFFIX="" +if [ $# -gt 0 ]; then + if [ "$1" == "testing" ]; then + VERSION_SUFFIX="-testing-$(date '+%Y%m%d')" + fi +fi -# copy macOS project to tmp -cp -r osx tmp/ +# copy macOS project to package +cp -r osx "$NZBGET_PATH/" DAEMON_PATH=osx/Resources/daemon/usr/local # make static daemon binary -cd build -cmake .. -DENABLE_STATIC=ON -DCMAKE_INSTALL_PREFIX="$PWD/../tmp/$DAEMON_PATH" -# if running from CI/CD, add testing to builds from non-main branch -if [ -n "$GITHUB_REF_NAME" ]; then - if [ "$GITHUB_REF_NAME" != "main" ]; then - VERSION="$VERSION-testing-$(date '+%Y%m%d')" - sed -e "s|#define VERSION.*|#define VERSION \"$VERSION\"|g" -i '' config.h - fi -fi +cd $BUILD_PATH +cmake ../.. -DENABLE_STATIC=ON -DCMAKE_INSTALL_PREFIX="$PWD/../../$NZBGET_PATH/$DAEMON_PATH" -DVERSION_SUFFIX="$VERSION_SUFFIX" cmake --build . -j $JOBS strip nzbget cmake --install . +cd ../.. # fetch tools and root certificates -cd ../tmp +cd $NZBGET_PATH mkdir -p $DAEMON_PATH/bin rm -rf $DAEMON_PATH/etc @@ -87,6 +90,6 @@ sed -i '' 's:^SevenZipCmd=.*:SevenZipCmd=${AppDir}/7za:' $CONF_FILE xcodebuild -project osx/NZBGet.xcodeproj -configuration "Release" -destination "platform=macOS" build # create build archive -ARCHIVE_NAME=nzbget-$VERSION-bin-macos-x64.zip +ARCHIVE_NAME=nzbget-$VERSION$VERSION_SUFFIX-bin-macos-x64.zip (cd osx/build/Release/ && zip -r $ARCHIVE_NAME NZBGet.app) -mv osx/build/Release/$ARCHIVE_NAME . +mv osx/build/Release/$ARCHIVE_NAME .. From 676007f7551fc92d6f72f451fbc8a7ef2728f9b5 Mon Sep 17 00:00:00 2001 From: phnzb Date: Wed, 27 Mar 2024 12:23:58 +0000 Subject: [PATCH 2/3] Fix renaming artifacts --- .github/workflows/osx.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index f4dcea9ff..d5f2c5398 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -27,10 +27,10 @@ jobs: if: github.ref_name != 'main' && github.ref_name != 'develop' run: | cd build - NEW_VERSION_FEATURE="$NEW_VERSION-${GITHUB_REF_NAME/\//-}" + SUFFIX="-${GITHUB_REF_NAME/\//-}" for FILE in *.zip; do [ -f $FILE ] || continue - NEW_FILE=${FILE/$NEW_VERSION/$NEW_VERSION_FEATURE} + NEW_FILE=${FILE/-bin-macos-x64.zip/-$SUFFIX-bin-macos-x64.zip} mv $FILE $NEW_FILE done From af866366fd337dd8bc02cdd029f301e13bd8bca5 Mon Sep 17 00:00:00 2001 From: phnzb Date: Wed, 27 Mar 2024 12:35:15 +0000 Subject: [PATCH 3/3] Fix artifact name --- .github/workflows/osx.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index d5f2c5398..87ff84e83 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -27,7 +27,7 @@ jobs: if: github.ref_name != 'main' && github.ref_name != 'develop' run: | cd build - SUFFIX="-${GITHUB_REF_NAME/\//-}" + SUFFIX="${GITHUB_REF_NAME/\//-}" for FILE in *.zip; do [ -f $FILE ] || continue NEW_FILE=${FILE/-bin-macos-x64.zip/-$SUFFIX-bin-macos-x64.zip}