From 72df15d2e91d194d980717e6ea73d292ef1a4573 Mon Sep 17 00:00:00 2001 From: Kang Lin Date: Mon, 19 Feb 2024 09:27:12 +0800 Subject: [PATCH] CI: modify appveyor.yml --- .github/workflows/msvc.yml | 2 +- appveyor.yml | 170 ++++++------------ ci/build-install-tools-windows.sh | 94 ---------- ci/build-install-tools.sh | 178 ------------------ ci/build.sh | 287 ------------------------------ ci/qt-installer.sh | 168 ----------------- 6 files changed, 51 insertions(+), 848 deletions(-) delete mode 100644 ci/build-install-tools-windows.sh delete mode 100644 ci/build-install-tools.sh delete mode 100644 ci/build.sh delete mode 100644 ci/qt-installer.sh diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml index 0eb8577c..2995ce85 100644 --- a/.github/workflows/msvc.yml +++ b/.github/workflows/msvc.yml @@ -124,7 +124,7 @@ jobs: copy /Y ${{env.INSTALL_DIR}}\bin\*.dll install\bin copy /Y ${{env.INSTALL_DIR}}\lib\*.dll install\bin copy /Y ${{env.RUNVCPKG_VCPKG_ROOT}}\installed\${{env.RUNVCPKG_VCPKG_TRIPLET_OUT}}\bin\*.dll install\bin - 7z a LunarCalendar_${{env.LunarCalendar_VERSION}}_${{matrix.triplet}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.zip .\install\* + 7z a LunarCalendar_${{env.LunarCalendar_VERSION}}_${{matrix.triplet}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.zip install\* - name: Update artifact for develop library uses: actions/upload-artifact@v3 diff --git a/appveyor.yml b/appveyor.yml index 88229cba..1d0d4d8e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,8 +1,8 @@ version: 'v1.0.0.{build}' cache: - - Package - + - C:\projects\other_source + environment: STOREPASS: secure: l9BZEU39F1a4vSkhwl0CHR+yh6CD1c7byGzMv+1NUa4= @@ -12,168 +12,98 @@ environment: secure: ejAYGgB+3sBispRxUSr0xw== matrix: - ##### msvc 2013 ######## - - BUILD_TARGERT: windows_msvc - GENERATORS: "Visual Studio 12 2013" - TOOLCHAIN_VERSION: 12 - QT_ROOT: C:\Qt\5.6\msvc2013 - BUILD_ARCH: x86 - - - BUILD_TARGERT: windows_msvc - GENERATORS: "Visual Studio 12 2013 Win64" - TOOLCHAIN_VERSION: 12 - QT_ROOT: C:\Qt\5.6\msvc2013_64 - BUILD_ARCH: x64 - ##### msvc 2015 ######## - - BUILD_TARGERT: windows_msvc - GENERATORS: "Visual Studio 14 2015" - TOOLCHAIN_VERSION: 14 - QT_ROOT: C:\Qt\5.10\msvc2015 - BUILD_ARCH: x86 - - - BUILD_TARGERT: windows_msvc - GENERATORS: "Visual Studio 14 2015 Win64" - TOOLCHAIN_VERSION: 14 - QT_ROOT: C:\Qt\5.10\msvc2015_64 - BUILD_ARCH: x64 - - - BUILD_TARGERT: windows_msvc - GENERATORS: "Visual Studio 14 2015" + - GENERATORS: "Visual Studio 14 2015" TOOLCHAIN_VERSION: 14 QT_ROOT: C:\Qt\5.6\msvc2015 BUILD_ARCH: x86 - - BUILD_TARGERT: windows_msvc - GENERATORS: "Visual Studio 14 2015 Win64" + - GENERATORS: "Visual Studio 14 2015 Win64" TOOLCHAIN_VERSION: 14 QT_ROOT: C:\Qt\5.6\msvc2015_64 BUILD_ARCH: x64 - ##### msvc 2017 ######## - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - GENERATORS: "Visual Studio 15 2017" - BUILD_TARGERT: windows_msvc - TOOLCHAIN_VERSION: 15 - QT_ROOT: C:\Qt\5.12\msvc2017 - BUILD_ARCH: x86 - STATIC: ON - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - GENERATORS: "Visual Studio 15 2017 Win64" - BUILD_TARGERT: windows_msvc - TOOLCHAIN_VERSION: 15 - QT_ROOT: C:\Qt\5.12\msvc2017_64 - BUILD_ARCH: x64 - STATIC: ON - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - GENERATORS: "Visual Studio 15 2017 Win64" - BUILD_TARGERT: windows_msvc - TOOLCHAIN_VERSION: 15 - QT_ROOT: C:\Qt\5.10\msvc2017_64 - BUILD_ARCH: x64 - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - GENERATORS: "Visual Studio 15 2017 Win64" - BUILD_TARGERT: windows_msvc - TOOLCHAIN_VERSION: 15 - QT_ROOT: C:\Qt\5.9\msvc2017_64 - BUILD_ARCH: x64 - - ##### mingw ######## - - BUILD_TARGERT: windows_mingw - GENERATORS: "MSYS Makefiles" - TOOLCHAIN_VERSION: 492_32 - QT_ROOT: C:\Qt\5.6\mingw49_32 - BUILD_ARCH: x86 - - - BUILD_TARGERT: windows_mingw - GENERATORS: "MSYS Makefiles" - TOOLCHAIN_VERSION: 530_32 - QT_ROOT: C:\Qt\5.10\mingw53_32 - BUILD_ARCH: x86 - - - BUILD_TARGERT: windows_mingw - GENERATORS: "MSYS Makefiles" - TOOLCHAIN_VERSION: 730_64 - QT_ROOT: C:\Qt\5.12\mingw73_64 - BUILD_ARCH: x64 - matrix: fast_finish: false init: - set varch=%BUILD_ARCH% - if "%BUILD_ARCH%" == "x64" set varch=amd64 - - if "%BUILD_TARGERT%" == "windows_msvc" if %TOOLCHAIN_VERSION% LSS 15 (call "C:\Program Files (x86)\Microsoft Visual Studio %TOOLCHAIN_VERSION%.0\VC\vcvarsall.bat" %varch%) else (call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %varch%) + - if %TOOLCHAIN_VERSION% LSS 15 (call "C:\Program Files (x86)\Microsoft Visual Studio %TOOLCHAIN_VERSION%.0\VC\vcvarsall.bat" %varch%) else (call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %varch%) - echo NUMBER_OF_PROCESSORS=%NUMBER_OF_PROCESSORS% - echo PROCESSOR_IDENTIFIER=%PROCESSOR_IDENTIFIER% - if NOT "%QT_ROOT%" == "NO" for /f "delims=" %%i in ('%QT_ROOT%/bin/qmake -query QT_VERSION') do (set QT_VERSION=%%i) - echo QT_ROOT=%QT_ROOT% - echo QT_VERSION=%QT_VERSION% - - del C:\msys64\usr\bin\link.exe - set LunarCalendar_VERSION=v0.2.3 install: - - C:\msys64\autorebase.bat - - C:\msys64\usr\bin\pacman.exe -S --noconfirm unzip - #- if "%BUILD_TARGERT%"=="windows_mingw" set PATH=C:\Qt\Tools\mingw%TOOLCHAIN_VERSION%_32\bin;%PATH% - - if "%BUILD_TARGERT%" == "windows_mingw" set MSYSTEM=MINGW32 #设置编译系统为MINGW32 - -before_build: - cd %APPVEYOR_BUILD_FOLDER% - git submodule update --init --recursive - git clone https://github.com/KangLin/RabbitCommon.git - set RabbitCommon_DIR=%APPVEYOR_BUILD_FOLDER%/RabbitCommon - - if "%BUILD_TARGERT%" == "android" C:\msys64\usr\bin\bash.exe %APPVEYOR_BUILD_FOLDER%\ci\build-install-tools-windows.sh + - set OTHER_SOURCE=%APPVEYOR_BUILD_FOLDER%\..\other_source - set INSTALL_DIR=%OTHER_SOURCE%\install_dir - - set VCPKG_DIR=%OTHER_SOURCE%\vcpkg - if not exist "%OTHER_SOURCE%" ( mkdir "%OTHER_SOURCE%" ) + - if not exist "%INSTALL_DIR%" (mkdir "%INSTALL_DIR%") - cd %OTHER_SOURCE% - - set CMAKE_VERSION=3.25.0 + - set CMAKE_VERSION=3.28.3 - if not exist cmake-%CMAKE_VERSION%-windows-i386 (curl -fsSL -o cmake-%CMAKE_VERSION%-windows-i386.zip https://github.com/Kitware/CMake/releases/download/v%CMAKE_VERSION%/cmake-%CMAKE_VERSION%-windows-i386.zip && 7z x cmake-%CMAKE_VERSION%-windows-i386.zip) - cd cmake-%CMAKE_VERSION%-windows-i386 - set PATH="%CD%/bin";%PATH% - cd %OTHER_SOURCE% - - if not exist "%INSTALL_DIR%" (mkdir "%INSTALL_DIR%") - - cd %OTHER_SOURCE% - - if not exist vcpkg (git clone "https://github.com/microsoft/vcpkg.git" && cd "%VCPKG_DIR%" && git checkout -b a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 ) - - cd %VCPKG_DIR% - - bootstrap-vcpkg.bat - - vcpkg --triplet %BUILD_ARCH%-windows install zlib openssl + - set VCPKG_DIR=%OTHER_SOURCE%\vcpkg + - if not exist %VCPKG_DIR% (git clone "https://github.com/microsoft/vcpkg.git" && cd "%VCPKG_DIR%" && git checkout -b a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 && bootstrap-vcpkg.bat) + +before_build: build_script: - cd %APPVEYOR_BUILD_FOLDER% - - C:\msys64\usr\bin\bash.exe %APPVEYOR_BUILD_FOLDER%\ci\build.sh + - mkdir build + - cd build + - cmake %APPVEYOR_BUILD_FOLDER% ^ + -DCMARK_SHARED=OFF ^ + -DCMARK_TESTS=OFF ^ + -DCMARK_STATIC=ON ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_PREFIX=%CD%/install ^ + -DCMAKE_TOOLCHAIN_FILE=%OTHER_SOURCE%/vcpkg/scripts/buildsystems/vcpkg.cmake ^ + -DVCPKG_VERBOSE=ON ^ + -DX_VCPKG_APPLOCAL_DEPS_INSTALL=OFF ^ + -DVCPKG_APPLOCAL_DEPS=OFF ^ + -DBUILD_QUIWidget=OFF ^ + -DINSTALL_QT=OFF ^ + -DBUILD_APP=OFF ^ + -DQT_DIR=%QT_ROOT%/lib/cmake/qt5 ^ + -DQt5_DIR=%QT_ROOT%/lib/cmake/qt5 + - cmake --build . --config Release + - cmake --build . --config Release --target install artifacts: - - path: build_${BUILD_TARGERT}/LunarCalendar_Setup_*.exe - name: LunarCalendar_$(BUILD_TARGERT)$(TOOLCHAIN_VERSION)_$(BUILD_ARCH)_$(QT_VERSION)_$(appveyor_build_version) + - path: build/install + name: LunarCalendar_$(LunarCalendar_VERSION)_msvc$(TOOLCHAIN_VERSION)_Qt$(QT_VERSION) type: zip - - path: build_${BUILD_TARGERT}/update_windows.xml - test: off #See:https://www.appveyor.com/docs/deployment/github/ -#deploy: -# - provider: GitHub -# #release: LunarCalendar_$(appveyor_build_version) -# description: 'Release LunarCalendar $(APPVEYOR_REPO_TAG_NAME) on windows' -# #token : https://github.com/settings/tokens password encrypt: https://ci.appveyor.com/tools/encrypt -# auth_token: -# secure: aPr1U6S1RtXZiK2mCWtAAIOMjuiBR0yPsD2kaYIADtx2ulIitdp336kFqmfKwM9x -# #artifact: LunarCalendar$(BUILD_TARGERT)$(TOOLCHAIN_VERSION)_$(BUILD_ARCH)_$(QT_VERSION)_$(appveyor_build_version) -# #draft: true -# #prerelease: true -# on: -# BUILD_TARGERT: windows_msvc -# TOOLCHAIN_VERSION: 14 -# GENERATORS: "Visual Studio 14 2015" -# QT_VERSION: 5.6.3 -# BUILD_ARCH: x86 -# appveyor_repo_tag: true # deploy on tag push only +deploy: + - provider: GitHub + #release: LunarCalendar_$(appveyor_build_version) + description: 'Release LunarCalendar $(APPVEYOR_REPO_TAG_NAME) on windows' + #token : https://github.com/settings/tokens password encrypt: https://ci.appveyor.com/tools/encrypt + auth_token: + secure: aPr1U6S1RtXZiK2mCWtAAIOMjuiBR0yPsD2kaYIADtx2ulIitdp336kFqmfKwM9x + #artifact: LunarCalendar$(BUILD_TARGERT)$(TOOLCHAIN_VERSION)_$(BUILD_ARCH)_$(QT_VERSION)_$(appveyor_build_version) + #draft: true + #prerelease: true + on: + BUILD_TARGERT: windows_msvc + TOOLCHAIN_VERSION: 14 + GENERATORS: "Visual Studio 14 2015" + QT_VERSION: 5.6.3 + BUILD_ARCH: x86 + appveyor_repo_tag: true # deploy on tag push only diff --git a/ci/build-install-tools-windows.sh b/ci/build-install-tools-windows.sh deleted file mode 100644 index 05dc30e3..00000000 --- a/ci/build-install-tools-windows.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/bash -#下载工具 - -set -ev - -SOURCE_DIR="`pwd`" -echo $SOURCE_DIR -TOOLS_DIR=${SOURCE_DIR}/Tools -PACKAGE_DIR=${SOURCE_DIR}/Package -echo ${TOOLS_DIR} - -if [ "$BUILD_TARGERT" = "android" ]; then - export ANDROID_SDK_ROOT=${TOOLS_DIR}/android-sdk - export ANDROID_NDK_ROOT=${TOOLS_DIR}/android-ndk - export JAVA_HOME="/C/Program Files (x86)/Java/jdk1.8.0" - export PATH=${TOOLS_DIR}/apache-ant/bin:$JAVA_HOME:$PATH -else - exit 0 -fi - -if [ ! -d "${TOOLS_DIR}" ]; then - mkdir ${TOOLS_DIR} -fi -if [ ! -d "$PACKAGE_DIR" ]; then - mkdir -p $PACKAGE_DIR -fi -cd ${TOOLS_DIR} - -# Qt qt安装参见:https://github.com/benlau/qtci -if [ -n "${QT_VERSION}" ]; then - QT_DIR=C:/projects/${APPVEYOR_PROJECT_NAME}/Tools/Qt/${QT_VERSION} - if [ ! -d "${QT_DIR}" ]; then - cd $PACKAGE_DIR - if [ ! -f qt-opensource-windows-x86-${QT_VERSION}.exe ]; then - wget -c --no-check-certificate -nv http://download.qt.io/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/qt-opensource-windows-x86-${QT_VERSION}.exe - fi - bash ${SOURCE_DIR}/ci/qt-installer.sh qt-opensource-windows-x86-${QT_VERSION}.exe ${QT_DIR} - fi -fi - -cd ${TOOLS_DIR} - -#下载ANT -#wget -c -nv http://apache.fayea.com//ant/binaries/apache-ant-1.10.1-bin.tar.gz -#tar xzf apache-ant-1.10.1-bin.tar.gz -#rm -f apache-ant-1.10.1-bin.tar.gz -#mv apache-ant-1.10.1 apache-ant - -cd ${TOOLS_DIR} - -#Download android sdk -if [ ! -d "${TOOLS_DIR}/android-sdk" ]; then - - - cd ${PACKAGE_DIR} - ANDROID_STUDIO_VERSION=191.5900203 - if [ ! -f android-studio-ide-${ANDROID_STUDIO_VERSION}-windows.zip ]; then - wget -c -nv https://dl.google.com/dl/android/studio/ide-zips/3.5.1.0/android-studio-ide-${ANDROID_STUDIO_VERSION}-windows.zip - fi - cp android-studio-ide-${ANDROID_STUDIO_VERSION}-windows.zip ${TOOLS_DIR}/. - cd ${TOOLS_DIR} - unzip -q android-studio-ide-${ANDROID_STUDIO_VERSION}-windows.zip - #rm android-studio-ide-${ANDROID_STUDIO_VERSION}-windows.zip - export JAVA_HOME=${TOOLS_DIR}/android-studio/jre - export PATH=${JAVA_HOME}/bin:$PATH - - cd ${PACKAGE_DIR} - ANDROID_SDK_VERSION=4333796 - if [ ! -f sdk-tools-windows-${ANDROID_SDK_VERSION}.zip ]; then - wget -c -nv https://dl.google.com/android/repository/sdk-tools-windows-${ANDROID_SDK_VERSION}.zip - fi - cp sdk-tools-windows-${ANDROID_SDK_VERSION}.zip ${TOOLS_DIR}/. - cd ${TOOLS_DIR} - mkdir android-sdk - cd android-sdk - mv ../sdk-tools-windows-${ANDROID_SDK_VERSION}.zip . - unzip -q sdk-tools-windows-${ANDROID_SDK_VERSION}.zip - #rm sdk-tools-windows-${ANDROID_SDK_VERSION}.zip - - echo "Install sdk and ndk ......" - if [ -n "${ANDROID_API}" ]; then - PLATFORMS="platforms;${ANDROID_API}" - else - PLATFORMS="platforms" - fi - if [ -z "${BUILD_TOOS_VERSION}" ]; then - BUILD_TOOS_VERSION="28.0.3" - fi - (sleep 5 ; num=0 ; while [ $num -le 5 ] ; do sleep 1 ; num=$(($num+1)) ; printf 'y\r\n' ; done ) \ - | ./tools/bin/sdkmanager.bat "platform-tools" "build-tools;${BUILD_TOOS_VERSION}" "${PLATFORMS}" "ndk-bundle" - cd ${TOOLS_DIR} -fi - -cd ${SOURCE_DIR} diff --git a/ci/build-install-tools.sh b/ci/build-install-tools.sh deleted file mode 100644 index f3ca94d6..00000000 --- a/ci/build-install-tools.sh +++ /dev/null @@ -1,178 +0,0 @@ -#!/bin/bash -#下载工具 - -set -e -SOURCE_DIR="`pwd`" -echo $SOURCE_DIR -TOOLS_DIR=${SOURCE_DIR}/Tools -PACKAGE_DIR=${SOURCE_DIR}/Package - -if [ ! -d "${TOOLS_DIR}" ]; then - mkdir ${TOOLS_DIR} -fi -if [ ! -d "$PACKAGE_DIR" ]; then - mkdir -p $PACKAGE_DIR -fi - -function function_install_yasm() -{ - #安装 yasm - mkdir -p ${TOOLS_DIR}/src - cd ${TOOLS_DIR}/src - wget -c -nv http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz - tar xzf yasm-1.3.0.tar.gz - cd yasm-1.3.0/ - ./configure > /dev/null && sudo make install -j2 > /dev/null - cd ${SOURCE_DIR} -} - -function function_common() -{ - cd ${TOOLS_DIR} - - # Qt qt安装参见:https://github.com/benlau/qtci - if [ "$DOWNLOAD_QT" = "TRUE" ]; then - QT_DIR=`pwd`/Qt/${QT_VERSION} - cd ${PACKAGE_DIR} - if [ ! -d "${QT_DIR}" ]; then - if [ "${QT_VERSION}" = "5.6.3" ]; then - if [ ! -f qt-opensource-linux-x64-android-${QT_VERSION}.run ]; then - wget -c --no-check-certificate -nv http://download.qt.io/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/qt-opensource-linux-x64-android-${QT_VERSION}.run - fi - bash ${SOURCE_DIR}/ci/qt-installer.sh qt-opensource-linux-x64-android-${QT_VERSION}.run ${QT_DIR} - #rm qt-opensource-linux-x64-android-${QT_VERSION}.run - else - if [ ! -f qt-opensource-linux-x64-${QT_VERSION}.run ]; then - wget -c --no-check-certificate -nv http://download.qt.io/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/qt-opensource-linux-x64-${QT_VERSION}.run - fi - bash ${SOURCE_DIR}/ci/qt-installer.sh qt-opensource-linux-x64-${QT_VERSION}.run ${QT_DIR} - #rm qt-opensource-linux-x64-${QT_VERSION}.run - fi - fi - fi -} - -function install_android() -{ - cd ${TOOLS_DIR} - if [ ! -d "`pwd`/android-sdk" ]; then - cd ${PACKAGE_DIR} - ANDROID_STUDIO_VERSION=191.5900203 - if [ ! -f android-studio-ide-${ANDROID_STUDIO_VERSION}-linux.tar.gz ]; then - wget -c -nv https://dl.google.com/dl/android/studio/ide-zips/3.5.1.0/android-studio-ide-${ANDROID_STUDIO_VERSION}-linux.tar.gz - fi - cp android-studio-ide-${ANDROID_STUDIO_VERSION}-linux.tar.gz ${TOOLS_DIR}/. - cd ${TOOLS_DIR} - tar xzf android-studio-ide-${ANDROID_STUDIO_VERSION}-linux.tar.gz - export JAVA_HOME=`pwd`/android-studio/jre - export PATH=${JAVA_HOME}/bin:$PATH - wget -c -nv https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip - mkdir android-sdk - cd android-sdk - cp ../sdk-tools-linux-4333796.zip . - unzip -q sdk-tools-linux-4333796.zip - echo "Install sdk and ndk ......" - if [ -n "${ANDROID_API}" ]; then - PLATFORMS="platforms;${ANDROID_API}" - else - PLATFORMS="platforms" - fi - if [ -z "${BUILD_TOOS_VERSION}" ]; then - BUILD_TOOS_VERSION="28.0.3" - fi - (sleep 5 ; num=0 ; while [ $num -le 5 ] ; do sleep 1 ; num=$(($num+1)) ; printf 'y\r\n' ; done ) \ - | ./tools/bin/sdkmanager "platform-tools" "build-tools;${BUILD_TOOS_VERSION}" "${PLATFORMS}" "ndk-bundle" - if [ ! -d ${TOOLS_DIR}/android-ndk ]; then - ln -s ${TOOLS_DIR}/android-sdk/ndk-bundle ${TOOLS_DIR}/android-ndk - fi - fi -} - -function function_android() -{ - cd ${TOOLS_DIR} - - sudo apt-get update -y -qq - #sudo apt-get install -qq -y openjdk-11-jdk - # install oracle jdk - #sudo add-apt-repository ppa:linuxuprising/java -y - #sudo apt update - #(sleep 5 ; while true ; do sleep 1 ; printf '\r\n' ; done ) | sudo apt install oracle-java11-installer -qq -y - - #sudo apt install oracle-java11-set-default -qq -y - - install_android - - #sudo apt-get install ant -qq -y - sudo apt-get install libicu-dev -qq -y - - function_common - cd ${SOURCE_DIR} -} - -function function_unix() -{ - #汇编工具yasm - #function_install_yasm - - if [ "$DOWNLOAD_QT" != "TRUE" -a "$DOWNLOAD_QT" != "APT" ]; then - #See: https://launchpad.net/~beineri - sudo add-apt-repository ppa:beineri/opt-qt-${QT_VERSION}-`lsb_release -c|awk '{print $2}'` -y - fi - - sudo apt-get update -y -qq - sudo apt-get install debhelper fakeroot -y -qq - sudo apt-get install -y -qq libglu1-mesa-dev \ - libxkbcommon-x11-dev \ - libpulse-mainloop-glib0 \ - libmysql-cil-dev libmysql-cil-dev libmysql-ocaml-dev \ - libmysql++-dev libmysqld-dev libmysqlcppconn-dev \ - libmysqlclient-dev \ - libodbc1 - - if [ "$DOWNLOAD_QT" = "APT" ]; then - sudo apt-get install -y -qq qttools5-dev qttools5-dev-tools \ - qtbase5-dev qtbase5-dev-tools - sudo ln -s /usr/lib/`uname -m`-linux-gnu/cmake /usr/lib/`uname -m`-linux-gnu/qt5/cmake - elif [ "$DOWNLOAD_QT" != "TRUE" ]; then - sudo apt-get install -y -qq qt${QT_VERSION_DIR}base \ - qt${QT_VERSION_DIR}tools \ - qt${QT_VERSION_DIR}multimedia - sed -i "s/export QT_VERSION=/export QT_VERSION=${QT_VERSION}/g" ${SOURCE_DIR}/debian/preinst - sed -i "s/qt59/qt${QT_VERSION_DIR}/g" ${SOURCE_DIR}/debian/postinst - fi - function_common - - cd ${SOURCE_DIR} -} - -function function_mingw() -{ - #汇编工具yasm - #function_install_yasm - - cd ${SOURCE_DIR} - if [ "true" == "$RABBITIM_BUILD_THIRDLIBRARY" ]; then - export RABBITIM_BUILD_CROSS_HOST=i686-w64-mingw32 #i586-mingw32msvc - fi - - function_common - cd ${SOURCE_DIR} -} - -case ${BUILD_TARGERT} in - android) - function_android - ;; - unix) - function_unix - ;; - windows_mingw) - function_mingw - ;; - *) - echo "There aren't ${BUILD_TARGERT}" - ;; -esac - -cd ${SOURCE_DIR} diff --git a/ci/build.sh b/ci/build.sh deleted file mode 100644 index 55808764..00000000 --- a/ci/build.sh +++ /dev/null @@ -1,287 +0,0 @@ -#!/bin/bash -set -e - -SOURCE_DIR=`pwd` -if [ -n "$1" ]; then - SOURCE_DIR=$1 -fi -TOOLS_DIR=${SOURCE_DIR}/Tools -cd ${SOURCE_DIR} -export RabbitCommon_DIR="${SOURCE_DIR}/RabbitCommon" - -function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; } -function version_le() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" == "$1"; } -function version_lt() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" != "$1"; } -function version_ge() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"; } - -if [ "$BUILD_TARGERT" = "android" ]; then - export ANDROID_SDK_ROOT=${TOOLS_DIR}/android-sdk - export ANDROID_NDK_ROOT=${TOOLS_DIR}/android-ndk - if [ -n "$APPVEYOR" ]; then - #export JAVA_HOME="/C/Program Files (x86)/Java/jdk1.8.0" - export ANDROID_NDK_ROOT=${TOOLS_DIR}/android-sdk/ndk-bundle - fi - #if [ "$TRAVIS" = "true" ]; then - #export JAVA_HOME=${SOURCE_DIR}/Tools/android-studio/jre - #export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 - #fi - export JAVA_HOME=${TOOLS_DIR}/android-studio/jre - case $BUILD_ARCH in - arm*) - export QT_ROOT=${TOOLS_DIR}/Qt/${QT_VERSION}/${QT_VERSION}/android_armv7 - ;; - x86) - export QT_ROOT=${TOOLS_DIR}/Qt/${QT_VERSION}/${QT_VERSION}/android_x86 - ;; - esac - export PATH=${TOOLS_DIR}/apache-ant/bin:$JAVA_HOME/bin:$PATH - export ANDROID_SDK=${ANDROID_SDK_ROOT} - export ANDROID_NDK=${ANDROID_NDK_ROOT} - if [ -z "${BUILD_TOOS_VERSION}" ]; then - export BUILD_TOOS_VERSION="28.0.3" - fi -fi - -if [ "${BUILD_TARGERT}" = "unix" ]; then - if [ "$DOWNLOAD_QT" = "APT" ]; then - export QT_ROOT=/usr/lib/`uname -m`-linux-gnu/qt5 - elif [ "$DOWNLOAD_QT" = "TRUE" ]; then - QT_DIR=${TOOLS_DIR}/Qt/${QT_VERSION} - export QT_ROOT=${QT_DIR}/${QT_VERSION}/gcc_64 - else - #source /opt/qt${QT_VERSION_DIR}/bin/qt${QT_VERSION_DIR}-env.sh - export QT_ROOT=/opt/qt${QT_VERSION_DIR} - fi - export PATH=$QT_ROOT/bin:$PATH - export LD_LIBRARY_PATH=$QT_ROOT/lib/i386-linux-gnu:$QT_ROOT/lib:$LD_LIBRARY_PATH - export PKG_CONFIG_PATH=$QT_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH -fi - -if [ "$BUILD_TARGERT" != "windows_msvc" ]; then - RABBIT_MAKE_JOB_PARA="-j`cat /proc/cpuinfo |grep 'cpu cores' |wc -l`" #make 同时工作进程参数 - if [ "$RABBIT_MAKE_JOB_PARA" = "-j1" ];then - RABBIT_MAKE_JOB_PARA="" - fi -fi - -if [ "$BUILD_TARGERT" = "windows_mingw" \ - -a -n "$APPVEYOR" ]; then - export PATH=/C/Qt/Tools/mingw${TOOLCHAIN_VERSION}/bin:$PATH -fi -TARGET_OS=`uname -s` -case $TARGET_OS in - MINGW* | CYGWIN* | MSYS*) - export PKG_CONFIG=/c/msys64/mingw32/bin/pkg-config.exe - RABBIT_BUILD_HOST="windows" - if [ "$BUILD_TARGERT" = "android" ]; then - ANDROID_NDK_HOST=windows-x86_64 - if [ ! -d $ANDROID_NDK/prebuilt/${ANDROID_NDK_HOST} ]; then - ANDROID_NDK_HOST=windows - fi - CONFIG_PARA="${CONFIG_PARA} -DCMAKE_MAKE_PROGRAM=make" #${ANDROID_NDK}/prebuilt/${ANDROID_NDK_HOST}/bin/make.exe" - fi - ;; - Linux* | Unix*) - ;; - *) - ;; -esac - -export PATH=${QT_ROOT}/bin:$PATH -echo "PATH:$PATH" -echo "PKG_CONFIG:$PKG_CONFIG" -cd ${SOURCE_DIR} -mkdir -p build_${BUILD_TARGERT} -cd build_${BUILD_TARGERT} - -case ${BUILD_TARGERT} in - windows_msvc) - MAKE=nmake - ;; - windows_mingw) - if [ "${RABBIT_BUILD_HOST}"="windows" ]; then - MAKE="mingw32-make ${RABBIT_MAKE_JOB_PARA}" - fi - ;; - *) - MAKE="make ${RABBIT_MAKE_JOB_PARA}" - ;; -esac - -if [ -n "$appveyor_build_version" -a -z "$VERSION" ]; then - export VERSION="v1.0.0" -fi -if [ -z "$VERSION" ]; then - export VERSION="v1.0.0" -fi -export UPLOADTOOL_BODY="Release LunarCalendar-${VERSION}.
The change see [ChangeLog.md](ChangeLog.md)" -#export UPLOADTOOL_PR_BODY= -if [ "${BUILD_TARGERT}" = "unix" ]; then - cd $SOURCE_DIR - if [ "${DOWNLOAD_QT}" != "TRUE" -a "${DOWNLOAD_QT}" != "APT" ]; then - sed -i "s/export QT_VERSION_DIR=.*/export QT_VERSION_DIR=${QT_VERSION_DIR}/g" ${SOURCE_DIR}/debian/postinst - sed -i "s/export QT_VERSION=.*/export QT_VERSION=${QT_VERSION}/g" ${SOURCE_DIR}/debian/preinst - cat ${SOURCE_DIR}/debian/postinst - cat ${SOURCE_DIR}/debian/preinst - fi - bash build_debpackage.sh ${QT_ROOT} - - sudo dpkg -i ../lunarcalendar*_amd64.deb - echo "test ......" - $SOURCE_DIR/test/test_linux.sh - - cd debian/lunarcalendar/opt - #export LD_LIBRARY_PATH=`pwd`/LunarCalendar/bin:${QT_ROOT}/bin:${QT_ROOT}/lib - - URL_LINUXDEPLOYQT=https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage - wget -c -nv ${URL_LINUXDEPLOYQT} -O linuxdeployqt.AppImage - chmod a+x linuxdeployqt.AppImage - - cd LunarCalendar - #ldd ./bin/LunarCalendarApp - ../linuxdeployqt.AppImage share/applications/*.desktop \ - -qmake=${QT_ROOT}/bin/qmake -appimage -no-copy-copyright-files -verbose - - # Create appimage install package - cp $SOURCE_DIR/Install/install.sh . - cp $RabbitCommon_DIR/Install/install1.sh . - ln -s Lunar_calendar-${VERSION}-x86_64.AppImage LunarCalendar-x86_64.AppImage - tar -czf LunarCalendar_${VERSION}.tar.gz \ - LunarCalendar-x86_64.AppImage \ - Lunar_calendar-${VERSION}-x86_64.AppImage \ - share \ - install.sh \ - install1.sh - - # Create update.xml - MD5=`md5sum $SOURCE_DIR/../lunarcalendar*_amd64.deb|awk '{print $1}'` - echo "MD5:${MD5}" - ./bin/LunarCalendarApp \ - -f "`pwd`/update_linux.xml" \ - --md5 ${MD5} #\ - #--min "v0.1.8" - cat update_linux.xml - - MD5=`md5sum LunarCalendar_${VERSION}.tar.gz|awk '{print $1}'` - echo "MD5:${MD5}" - ./LunarCalendar-x86_64.AppImage \ - -f "`pwd`/update_linux_appimage.xml" \ - --url "https://github.com/KangLin/LunarCalendar/releases/download/${VERSION}/LunarCalendar_${VERSION}.tar.gz" \ - --md5 ${MD5} -m "${VERSION}" - cat update_linux_appimage.xml - - if [ "$TRAVIS_TAG" != "" -a "${DOWNLOAD_QT}" = "APT" ]; then - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh - bash upload.sh $SOURCE_DIR/../lunarcalendar*_amd64.deb update_linux.xml - bash upload.sh LunarCalendar_${VERSION}.tar.gz update_linux_appimage.xml - fi - exit 0 -fi - -if [ -n "$GENERATORS" ]; then - if [ -n "${STATIC}" ]; then - CONFIG_PARA="-DBUILD_SHARED_LIBS=${STATIC}" - fi - if [ -n "${ANDROID_ARM_NEON}" ]; then - CONFIG_PARA="${CONFIG_PARA} -DANDROID_ARM_NEON=${ANDROID_ARM_NEON}" - fi - if [ "${BUILD_TARGERT}" = "android" ]; then - cmake -G"${GENERATORS}" ${SOURCE_DIR} ${CONFIG_PARA} \ - -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ - -DCMAKE_VERBOSE=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 \ - -DQt5Core_DIR=${QT_ROOT}/lib/cmake/Qt5Core \ - -DQt5Gui_DIR=${QT_ROOT}/lib/cmake/Qt5Gui \ - -DQt5Widgets_DIR=${QT_ROOT}/lib/cmake/Qt5Widgets \ - -DQt5Xml_DIR=${QT_ROOT}/lib/cmake/Qt5Xml \ - -DQt5Sql_DIR=${QT_ROOT}/lib/cmake/Qt5Sql \ - -DQt5Network_DIR=${QT_ROOT}/lib/cmake/Qt5Network \ - -DQt5Multimedia_DIR=${QT_ROOT}/lib/cmake/Qt5Multimedia \ - -DQt5LinguistTools_DIR=${QT_ROOT}/lib/cmake/Qt5LinguistTools \ - -DQt5AndroidExtras_DIR=${QT_ROOT}/lib/cmake/Qt5AndroidExtras \ - -DANDROID_PLATFORM=${ANDROID_API} \ - -DANDROID_ABI="${BUILD_ARCH}" \ - -DCMAKE_MAKE_PROGRAM=make \ - -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake - else - cmake -G"${GENERATORS}" ${SOURCE_DIR} ${CONFIG_PARA} \ - -DCMAKE_INSTALL_PREFIX=`pwd`/install \ - -DCMAKE_VERBOSE=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 - fi - cmake --build . --config Release -- ${RABBIT_MAKE_JOB_PARA} - cmake --build . --config Release --target install -else - if [ "ON" = "${STATIC}" ]; then - CONFIG_PARA="CONFIG*=static" - fi - if [ "${BUILD_TARGERT}" = "android" ]; then - ${QT_ROOT}/bin/qmake ${SOURCE_DIR} \ - "CONFIG+=Release" ${CONFIG_PARA} - - $MAKE - $MAKE install INSTALL_ROOT=`pwd`/android-build - else - ${QT_ROOT}/bin/qmake ${SOURCE_DIR} \ - "CONFIG+=Release" ${CONFIG_PARA}\ - PREFIX=`pwd`/install - - $MAKE - echo "$MAKE install ...." - $MAKE install - fi -fi - -if [ "${BUILD_TARGERT}" = "windows_msvc" ]; then - if [ "${BUILD_ARCH}" = "x86" ]; then - cp /C/OpenSSL-Win32/bin/libeay32.dll install/bin - cp /C/OpenSSL-Win32/bin/ssleay32.dll install/bin - elif [ "${BUILD_ARCH}" = "x64" ]; then - cp /C/OpenSSL-Win64/bin/libeay32.dll install/bin - cp /C/OpenSSL-Win64/bin/ssleay32.dll install/bin - fi - - if [ -z "${STATIC}" ]; then - "/C/Program Files (x86)/NSIS/makensis.exe" "Install.nsi" - MD5=`md5sum LunarCalendar_Setup_*.exe|awk '{print $1}'` - echo "MD5:${MD5}" - install/bin/LunarCalendarApp.exe -f "`pwd`/update_windows.xml" \ - --md5 ${MD5} \ - -u "https://github.com/KangLin/LunarCalendar/releases/download/${VERSION}/LunarCalendar_Setup_${VERSION}.exe;https://sourceforge.net/projects/LunarCalendar/files/${VERSION}/LunarCalendar_Setup_${VERSION}.exe" \ - --pf LunarCalendar_Setup_${VERSION}.exe \ - -m ${VERSION} - fi -fi - -if [ "${BUILD_TARGERT}" = "android" ]; then - ${QT_ROOT}/bin/androiddeployqt \ - --input `pwd`/App/android-libLunarCalendarApp.so-deployment-settings.json \ - --output `pwd`/android-build \ - --android-platform ${ANDROID_API} \ - --gradle \ - --sign ${RabbitCommon_DIR}/RabbitCommon.keystore rabbitcommon \ - --storepass ${STOREPASS} - APK_FILE=`find . -name "android-build-release-signed.apk"` - mv -f ${APK_FILE} $SOURCE_DIR/LunarCalendar_${VERSION}.apk - APK_FILE=$SOURCE_DIR/LunarCalendar_${VERSION}.apk - if [ "$TRAVIS_TAG" != "" -a "$BUILD_ARCH"="armeabi-v7a" -a "$QT_VERSION_DIR"="5.12" ]; then - cp $SOURCE_DIR/Update/update_android.xml . - - MD5=`md5sum ${APK_FILE} | awk '{print $1}'` - echo "MD5:${MD5}" - sed -i "s/.*${VERSION}.*Release LunarCalendar-${VERSION}.*`date`.*${BUILD_ARCH}.*${MD5}.*<:https\://github.com/KangLin/LunarCalendar/releases/download/${VERSION}/LunarCalendar_${VERSION}.apk<:g" update_android.xml - #sed -i "s/.*${VERSION} $SCRIPT -function Controller() { - installer.autoRejectMessageBoxes(); - installer.installationFinished.connect(function() { - gui.clickButton(buttons.NextButton); - }); -} - -function log() { - var msg = ["QTCI: "].concat([].slice.call(arguments)); - - console.log(msg.join(" ")); -} - -Controller.prototype.WelcomePageCallback = function() { - gui.clickButton(buttons.NextButton, 3000); -} - -Controller.prototype.CredentialsPageCallback = function() { - var login = installer.environmentVariable("QT_USER"); - var password = installer.environmentVariable("QT_PASSWORD"); - if( login === "" || password === "" ) { - console.log("No credentials provided - could stuck here forever"); - gui.clickButton(buttons.CommitButton); - } - var widget = gui.currentPageWidget(); - widget.loginWidget.EmailLineEdit.setText(login); - widget.loginWidget.PasswordLineEdit.setText(password); - gui.clickButton(buttons.CommitButton); -} - -Controller.prototype.ComponentSelectionPageCallback = function() { - var components = installer.components(); - log("Available components: " + components.length); - for (var i = 0 ; i < components.length ;i++) { - log(components[i].name); - } - log("Select components"); - function trim(str) { - return str.replace(/^ +/,"").replace(/ *$/,""); - } - var widget = gui.currentPageWidget(); - widget.deselectAll(); - var packages = trim("$SELECTEDPACKAGES").split(","); - if (packages.length > 0 && packages[0] !== "") { - - for (var i in packages) { - var pkg = trim(packages[i]); - for (var i = 0 ; i < components.length ;i++) { - if(components[i].name.indexOf(pkg) != -1) - { - log("Select " + components[i].name); - widget.selectComponent(trim(components[i].name)); - } - } - } - } else { - log("Use default component list"); - } - - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.IntroductionPageCallback = function() { - gui.clickButton(buttons.NextButton); -} - - -Controller.prototype.TargetDirectoryPageCallback = function() { - var widget = gui.currentPageWidget(); - - if (widget != null) { - widget.TargetDirectoryLineEdit.setText("$OUTPUT"); - } - - gui.clickButton(buttons.NextButton); - -} - -Controller.prototype.LicenseAgreementPageCallback = function() { - var widget = gui.currentPageWidget(); - - if (widget != null) { - widget.AcceptLicenseRadioButton.setChecked(true); - } - - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.StartMenuDirectoryPageCallback = function() { - gui.clickButton(buttons.CommitButton); -} - -Controller.prototype.ReadyForInstallationPageCallback = function() { - gui.clickButton(buttons.CommitButton); -} - -Controller.prototype.FinishedPageCallback = function() { - var widget = gui.currentPageWidget(); - widget.LaunchQtCreatorCheckBoxForm.launchQtCreatorCheckBox.setChecked(false); - gui.clickButton(buttons.FinishButton); -} -EOF - -chmod u+x $1 -#显示log -$1 -v --script $SCRIPT -#不显示log -#$1 --script $SCRIPT