branches: only: - master - dev - /\d+\.\d+/ jobs: include: - name: MacOS os: osx osx_image: xcode13.4 language: cpp env: - PATH=/usr/local/opt/ccache/libexec:$PATH - QT_VERSION=5.15.2 - QIF_VERSION=4.4 - QT_BIN_DIR=$HOME/Qt/$QT_VERSION/clang_64/bin - QIF_BIN_DIR=$QT_BIN_DIR/../../../Tools/QtInstallerFramework/$QIF_VERSION/bin install: - | if [ ! -f $QT_BIN_DIR/qmake ]; then \ brew install p7zip ccache && \ python3 -m pip install --upgrade pip && \ python3 -m pip install -U aqtinstall requests py7zr && \ python3 -m pip show aqtinstall && \ python3 -m aqt install-qt mac desktop $QT_VERSION clang_64 -m all -O $HOME/Qt && \ python3 -m aqt install-tool mac desktop tools_ifw -O $HOME/Qt ; \ fi script: - bash deploy/build_macos.sh after_script: - ccache --show-stats deploy: provider: releases token: $GH_TOKEN cleanup: false file: - "AmneziaVPN.dmg" on: tags: true branch: master cache: - ccache - directories: - $HOME/Qt - $HOME/Library/Caches/Homebrew # ------------------------------------------------------ - name: Windows_x64 os: windows language: cpp env: - PATH=/c/Python39:/c/Python39/Scripts:$PATH - QT_VERSION=5.15.2 - QIF_VERSION=4.4 - QT_BIN_DIR="c:\\Qt\\$QT_VERSION\\msvc2019_64\\bin" - QIF_BIN_DIR="c:\\Qt\\Tools\\QtInstallerFramework\\${QIF_VERSION}\\bin" - BUILD_ARCH=64 - MSVC_PATH_WIN="C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community" - MSVC_PATH="/C/Program Files (x86)/Microsoft Visual Studio/2019/Community" install: - if [ ! -f "$MSVC_PATH/VC/Auxiliary/Build/vcvars64.bat" ]; then choco install --ignorepackagecodes --no-progress -y visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.ATLMFC --includeRecommended --nocache --installPath $MSVC_PATH_WIN"; fi - if [ ! -f /C/Qt/$QT_VERSION/msvc2019_64/bin/qmake ]; then choco install python --version 3.9.1; fi - | if [ ! -f /C/Qt/$QT_VERSION/msvc2019_64/bin/qmake ]; then \ python -m pip install --upgrade pip && \ pip3 install -U aqtinstall requests py7zr && \ pip3 show aqtinstall && \ aqt install-qt windows desktop $QT_VERSION win64_msvc2019_64 -m all -O /C/Qt && \ aqt install-tool windows desktop tools_ifw -O /C/Qt ; \ fi - choco install ccache script: - echo set BUILD_ARCH=$BUILD_ARCH > winbuild.bat - echo set QT_BIN_DIR="$QT_BIN_DIR" >> winbuild.bat - echo set QIF_BIN_DIR="$QIF_BIN_DIR" >> winbuild.bat - echo call \""%MSVC_PATH_WIN%\\VC\\Auxiliary\\Build\\vcvars${BUILD_ARCH}.bat\"" >> winbuild.bat - echo call \""%MSVC_PATH_WIN%\\Common7\\Tools\\VsDevCmd.bat\" -arch=amd64" >> winbuild.bat - echo call deploy\\build_windows.bat >> winbuild.bat - cmd //c winbuild.bat after_script: - ccache --show-stats deploy: provider: releases token: $GH_TOKEN cleanup: false file: - "AmneziaVPN_x64.exe" on: tags: true branch: master cache: directories: - /C/Qt - $MSVC_PATH # ------------------------------------------------------ - name: Windows_x32 os: windows language: cpp env: - PATH=/c/Python39:/c/Python39/Scripts:$PATH - QT_VERSION=5.15.2 - QIF_VERSION=4.4 - QT_BIN_DIR="c:\\Qt\\${QT_VERSION}\\msvc2019\\bin" - QIF_BIN_DIR="c:\\Qt\\Tools\\QtInstallerFramework\\${QIF_VERSION}\\bin" - BUILD_ARCH=32 - MSVC_PATH_WIN="C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community" - MSVC_PATH="/C/Program Files (x86)/Microsoft Visual Studio/2019/Community" install: - if [ ! -f "$MSVC_PATH/VC/Auxiliary/Build/vcvars64.bat" ]; then choco install --ignorepackagecodes --no-progress -y visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.ATLMFC --includeRecommended --nocache --installPath $MSVC_PATH_WIN"; fi - if [ ! -f /C/Qt/$QT_VERSION/msvc2019/bin/qmake ]; then choco install python --version 3.9.1; fi - | if [ ! -f /C/Qt/$QT_VERSION/msvc2019/bin/qmake ]; then \ python -m pip install --upgrade pip && \ pip3 install -U aqtinstall requests py7zr && \ pip3 show aqtinstall && \ aqt install-qt windows desktop $QT_VERSION win32_msvc2019 -m all -O /C/Qt && \ aqt install-tool windows desktop tools_ifw -O /C/Qt ; \ fi - choco install ccache script: - echo set BUILD_ARCH=$BUILD_ARCH > winbuild.bat - echo set QT_BIN_DIR="$QT_BIN_DIR" >> winbuild.bat - echo set QIF_BIN_DIR="$QIF_BIN_DIR" >> winbuild.bat - echo call \""%MSVC_PATH_WIN%\\VC\\Auxiliary\\Build\\vcvars${BUILD_ARCH}.bat\"" >> winbuild.bat - echo call \""%MSVC_PATH_WIN%\\Common7\\Tools\\VsDevCmd.bat\"" >> winbuild.bat - echo call deploy\\build_windows.bat >> winbuild.bat - cmd //c winbuild.bat after_script: - ccache --show-stats deploy: provider: releases token: $GH_TOKEN cleanup: false file: - "AmneziaVPN_x32.exe" on: tags: true branch: master cache: directories: - /C/Qt - $MSVC_PATH # ------------------------------------------------------ - name: Linux os: linux language: cpp dist: focal addons: apt: packages: - p7zip - p7zip-full - python3 - python3-pip - libgl-dev - mesa-common-dev - libpulse-dev - libxcb-* - libxkbcommon-x11-0 env: - QT_VERSION=5.15.2 - QIF_VERSION=4.4 - QT_BIN_DIR=$HOME/Qt/$QT_VERSION/gcc_64/bin - QIF_BIN_DIR=$QT_BIN_DIR/../../../Tools/QtInstallerFramework/$QIF_VERSION/bin install: - | if [ ! -f $QT_BIN_DIR/qmake ]; then \ python3 -m pip install --user $(whoami) --upgrade pip && \ export PATH=$HOME/.local/bin:$PATH && \ python3 -m pip install -U aqtinstall requests py7zr && \ python3 -m pip show aqtinstall && \ python3 -m aqt install-qt linux desktop $QT_VERSION gcc_64 -m all -O $HOME/Qt && \ python3 -m aqt install-tool linux desktop tools_ifw -O $HOME/Qt ; \ fi script: - bash deploy/build_linux.sh after_script: - ccache --show-stats deploy: provider: releases token: $GH_TOKEN cleanup: false file: - "AmneziaVPN.bundle" on: tags: true branch: master cache: - ccache - directories: - $HOME/Qt - $HOME/.ccache # ------------------------------------------------------ - name: Android os: linux language: cpp dist: focal env: - QT_VERSION=5.15.2 - QT_BIN_DIR=$HOME/Qt/$QT_VERSION/android/bin - ANDROID_API_VERSION=android-21 - ANDROID_HOME=$HOME/sdk - ANDROID_SDK_ROOT=$ANDROID_HOME - LOCAL_ANDROID_HOME=$ANDROID_HOME - LOCAL_ANDROID_SDK_ROOT=$ANDROID_HOME - NDK_VERSION=21d - ANDROID_NDK_PLATFORM=android-21 - ANDROID_NDK_HOME=$HOME/android-ndk-r${NDK_VERSION} - ANDROID_NDK_ROOT=$ANDROID_NDK_HOME - ANDROID_NDK_HOST=linux-x86_64 - LOCAL_ANDROID_NDK_HOME=$ANDROID_NDK_HOME - LOCAL_ANDROID_NDK_HOST_PLATFORM=$ANDROID_NDK_HOST - JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 - TERM=dumb addons: apt: packages: - p7zip - python3 - python3-pip - openjdk-8-jdk install: - | if [ ! -f $QT_BIN_DIR/qmake ]; then \ python3 -m pip install -U aqtinstall requests py7zr && \ python3 -m pip show aqtinstall && \ python3 -m aqt install-qt linux android $QT_VERSION -m all -O $HOME/Qt ; \ fi - | if [ ! -f $ANDROID_SDK_ROOT/tools/bin/sdkmanager ]; then \ echo "Download Android SDK" && \ wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip -qO $HOME/sdk.zip > /dev/null && \ unzip -q -d $ANDROID_SDK_ROOT $HOME/sdk.zip && \ echo "Download tools" && \ yes | $ANDROID_SDK_ROOT/tools/bin/sdkmanager --licenses > /dev/null 2>&1 && \ $ANDROID_SDK_ROOT/tools/bin/sdkmanager --install "cmdline-tools;latest" "platform-tools" "platforms;android-30" "build-tools;30.0.2" > /dev/null 2>&1 || exit 1 ; \ fi - | if [ ! -f $ANDROID_NDK_ROOT/ndk-build ]; then \ wget https://dl.google.com/android/repository/android-ndk-r${NDK_VERSION}-linux-x86_64.zip -qO $HOME/ndk.zip && unzip -q -d $HOME $HOME/ndk.zip ; \ fi script: - bash deploy/build_android.sh after_script: - ccache --show-stats deploy: provider: releases token: $GH_TOKEN cleanup: false file: - "AmneziaVPN.aab" on: tags: true branch: master cache: - ccache - directories: - $HOME/Qt - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ - $HOME/.android/build-cache - $ANDROID_NDK_HOME - $ANDROID_SDK_ROOT # ------------------------------------------------------ - name: iOS os: osx osx_image: xcode13.4 language: cpp env: - PATH=/usr/local/opt/ccache/libexec:~/go/bin:$PATH - QT_VERSION=5.15.2 - QT_BIN_DIR=$HOME/Qt/$QT_VERSION/ios/bin - QT_IOS_BIN=$QT_BIN_DIR install: - | if [ ! -f $QT_BIN_DIR/qmake ]; then \ brew install p7zip ccache && \ python3 -m pip install --upgrade pip && \ python3 -m pip install -U aqtinstall requests py7zr && \ python3 -m pip show aqtinstall && \ python3 -m aqt install-qt mac ios $QT_VERSION -m all -O $HOME/Qt ; \ fi - brew install golang - go install golang.org/x/mobile/cmd/gomobile@latest - gomobile init script: - bash deploy/build_ios.sh after_script: - ccache --show-stats cache: - ccache - directories: - $HOME/Qt - $HOME/Library/Caches/Homebrew before_cache: - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi # Cache only .git files under "/usr/local/Homebrew" so "brew update" does not take 5min every build - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then find /usr/local/Homebrew \! -regex ".+\.git.+" -delete; fi