343 lines
11 KiB
YAML
343 lines
11 KiB
YAML
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
|
|
|