mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-06-23 02:00:20 +07:00
bd7a9e5444
Fix Android build on Travis
326 lines
11 KiB
YAML
326 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 && \
|
|
pip install -U aqtinstall requests py7zr && \
|
|
pip show aqtinstall && \
|
|
aqt install-qt mac desktop $QT_VERSION clang_64 -m all -O $HOME/Qt && \
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
dist: focal
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- p7zip
|
|
- p7zip-full
|
|
- python3
|
|
- python3-pip
|
|
- libgl-dev
|
|
- mesa-common-dev
|
|
- libpulse-dev
|
|
|
|
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
|
|
|
|
# ------------------------------------------------------
|
|
- name: Android
|
|
os: linux
|
|
language: cpp
|
|
dist: focal
|
|
env:
|
|
- QT_VERSION=5.15.2
|
|
- QT_BIN_DIR=$HOME/Qt/$QT_VERSION/android/bin
|
|
- USE_ANDROID_NDK_VERSION=21d
|
|
- ANDROID_NDK_HOME=$HOME/NDK
|
|
- PROJ_ROOT=$(pwd)
|
|
- JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
|
|
|
install:
|
|
- echo "Installing Java 8"
|
|
- sudo apt-get install openjdk-8-jdk > /dev/null
|
|
- echo "QT bin install" && pwd
|
|
- if [ ! -f $QT_BIN_DIR/qmake ]; then
|
|
wget https://ondjoss.com/qt15_2_android_linux_x86_64.zip > /dev/null &&
|
|
mkdir -p $HOME/Qt/$QT_VERSION && \
|
|
unzip ./qt15_2_android_linux_x86_64.zip -d $HOME/Qt/$QT_VERSION > /dev/null ;
|
|
fi
|
|
- echo "Download SDK" && pwd
|
|
- export ANDROID_HOME=`pwd`/sdk
|
|
- export LOCAL_ANDROID_HOME=`pwd`/sdk
|
|
- export ANDROID_SDK_ROOT=`pwd`/sdk
|
|
- export LOCAL_ANDROID_SDK_ROOT=`pwd`/sdk
|
|
- export ANDROID_API_VERSION=android-21
|
|
- mkdir -p sdk && cd sdk &&
|
|
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip -qO sdk.zip > /dev/null || exit 1
|
|
- ls -ll && unzip -q sdk.zip || exit 1
|
|
- echo "Download all needed tools" && pwd && ls -ll &&
|
|
yes | ./tools/bin/sdkmanager --licenses > /dev/null 2>/dev/null
|
|
- ./tools/bin/sdkmanager --install "cmdline-tools;latest" "platform-tools" "platforms;android-30" "build-tools;30.0.2" > /dev/null 2>/dev/null
|
|
- cd $PROJ_ROOT && echo "Download NDK" && pwd
|
|
- export TERM=dumb &&
|
|
curl -L https://dl.google.com/android/repository/android-ndk-r${USE_ANDROID_NDK_VERSION}-linux-x86_64.zip -O &&
|
|
unzip ./android-ndk-r${USE_ANDROID_NDK_VERSION}-linux-x86_64.zip > /dev/null &&
|
|
rm android-ndk-r${USE_ANDROID_NDK_VERSION}-linux-x86_64.zip &&
|
|
export ANDROID_NDK_HOME=`pwd`/android-ndk-r${USE_ANDROID_NDK_VERSION} &&
|
|
export ANDROID_NDK_ROOT=`pwd`/android-ndk-r${USE_ANDROID_NDK_VERSION} &&
|
|
export LOCAL_ANDROID_NDK_HOME="$ANDROID_NDK_HOME" &&
|
|
export LOCAL_ANDROID_NDK_HOST_PLATFORM="linux-x86_64" &&
|
|
export PATH=$PATH:${ANDROID_NDK_HOME} &&
|
|
export ANDROID_NDK_HOST=linux-x86_64 &&
|
|
export ANDROID_NDK_PLATFORM=android-21 &&
|
|
env
|
|
- echo "Check env vars" && echo $ANDROID_SDK_ROOT && echo $ANDROID_NDK_ROOT && echo $QT_BIN_DIR
|
|
|
|
script:
|
|
- travis_wait 60 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
|
|
|
|
# ------------------------------------------------------
|
|
- 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 && \
|
|
pip install -U aqtinstall requests py7zr && \
|
|
pip show aqtinstall && \
|
|
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
|
|
|