From 97457f17c15294e586009fa333a6f7a3a3172bd0 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Tue, 29 Nov 2022 22:11:02 +0300 Subject: [PATCH 1/3] fixed options parsing for enable macos NOTARIZE_APP --- deploy/build_macos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/build_macos.sh b/deploy/build_macos.sh index 09dd85f7..fa955215 100755 --- a/deploy/build_macos.sh +++ b/deploy/build_macos.sh @@ -3,7 +3,7 @@ echo "Build script started ..." set -o errexit -o nounset -while getopts n: flag +while getopts n flag do case "${flag}" in n) NOTARIZE_APP=1;; From dcb5828313c9d2378c9a0aa6b4869ecd5c20af97 Mon Sep 17 00:00:00 2001 From: pokamest Date: Wed, 30 Nov 2022 01:51:18 +0100 Subject: [PATCH 2/3] GitHub actions (#133) GitHub actions --- .github/workflows/deploy.yml | 255 +++++++++++++++++++++++++++++++++++ deploy/build_windows.bat | 2 +- 2 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..a5605263 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,255 @@ +name: 'Deploy workflow' + +on: [push] + +jobs: + Build-Linux-Ubuntu: + name: 'Build-Linux-Ubuntu' + runs-on: ubuntu-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + + steps: + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'linux' + target: 'desktop' + arch: 'gcc_64' + dir: ${{ runner.temp }} + setup-python: 'true' + tools: 'tools_ifw' + set-env: 'true' + extra: '--external 7z' + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Build project' + run: | + export QT_BIN_DIR=${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/gcc_64/bin + export QIF_BIN_DIR=${{ runner.temp }}/Qt/Tools/QtInstallerFramework/${{ env.QIF_VERSION }}/bin + bash deploy/build_linux.sh + +# ------------------------------------------------------ + + Build-Windows: + name: Build-Windows + runs-on: windows-latest + continue-on-error: true + + strategy: + matrix: + arch: [32, 64] + include: + - qt-arch: 'win32_msvc2019' + arch: 32 + - qt-msvc-path: 'msvc2019' + arch: 32 + - msvc-arch: 'x86' + arch: 32 + - qt-arch: 'win64_msvc2019_64' + arch: 64 + - qt-msvc-path: 'msvc2019_64' + arch: 64 + - msvc-arch: 'x64' + arch: 64 + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + BUILD_ARCH: ${{ matrix.arch }} + + steps: + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'windows' + target: 'desktop' + arch: '${{ matrix.qt-arch }}' + dir: ${{ runner.temp }} + setup-python: 'true' + tools: 'tools_ifw' + set-env: 'true' + extra: '--external 7z' + + - name: 'Setup mvsc' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.msvc-arch }} + + - name: 'Build project' + shell: cmd + run: | + set BUILD_ARCH=${{ env.BUILD_ARCH }} + set QT_BIN_DIR="${{ runner.temp }}\\Qt\\${{ env.QT_VERSION }}\\${{ matrix.qt-msvc-path }}\\bin" + set QIF_BIN_DIR="${{ runner.temp }}\\Qt\\Tools\\QtInstallerFramework\\${{ env.QIF_VERSION }}\\bin" + call deploy\\build_windows.bat + +# ------------------------------------------------------ + + Build-IOS: + name: 'Build-IOS' + runs-on: macos-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.4 + + steps: + - name: 'Setup xcode' + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '13.4' + + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'mac' + target: 'ios' + dir: ${{ runner.temp }} + setup-python: 'true' + set-env: 'true' + extra: '--external 7z' + + - name: 'Install go' + uses: actions/setup-go@v3 + + - name: 'Setup gomobile' + run: | + export PATH=$PATH:~/go/bin + go install golang.org/x/mobile/cmd/gomobile@latest + gomobile init + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Build project' + run: | + export QT_BIN_DIR="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/ios/bin" + export QT_IOS_BIN=$QT_BIN_DIR + export PATH=$PATH:~/go/bin + bash deploy/build_ios.sh + +# ------------------------------------------------------ + + Build-MacOS: + name: 'Build-MacOS' + runs-on: macos-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + + steps: + - name: 'Setup xcode' + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '13.4' + + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'mac' + target: 'desktop' + arch: 'clang_64' + dir: ${{ runner.temp }} + setup-python: 'true' + tools: 'tools_ifw' + set-env: 'true' + extra: '--external 7z' + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Build project' + run: | + export QT_BIN_DIR="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/clang_64/bin" + export QIF_BIN_DIR="${{ runner.temp }}/Qt/Tools/QtInstallerFramework/${{ env.QIF_VERSION }}/bin" + bash deploy/build_macos.sh + +# ------------------------------------------------------ + + Build-Android: + name: 'Build-Android' + runs-on: ubuntu-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + + steps: + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'linux' + target: 'android' + arch: 'android' + dir: ${{ runner.temp }} + setup-python: 'true' + set-env: 'true' + extra: '--external 7z' + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Setup Java' + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '8' + + - name: 'Build project' + run: | + export NDK_VERSION=21d + export ANDROID_NDK_PLATFORM=android-21 + export ANDROID_NDK_HOME=${{ runner.temp }}/android-ndk-r${NDK_VERSION} + export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME + + 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 ${{ runner.temp }}/ndk.zip && + unzip -q -d ${{ runner.temp }} ${{ runner.temp }}/ndk.zip ; + fi + + export QT_BIN_DIR=${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/android/bin + bash deploy/build_android.sh \ No newline at end of file diff --git a/deploy/build_windows.bat b/deploy/build_windows.bat index c82a54ee..b58c4286 100644 --- a/deploy/build_windows.bat +++ b/deploy/build_windows.bat @@ -92,7 +92,7 @@ dir %OUT_APP_DIR% cd %OUT_APP_DIR% echo "Compressing data..." -"%QIF_BIN_DIR:"=%\archivegen" -c 9 %INSTALLER_DATA_DIR:"=%\%APP_NAME:"=%.7z ./ +"%QIF_BIN_DIR:"=%\archivegen" -c 9 %INSTALLER_DATA_DIR:"=%\%APP_NAME:"=%.7z . cd "%RELEASE_DIR:"=%\installer" echo "Creating installer..." From a9217810e75a00370dfb55eb654e1d9ba23ecd74 Mon Sep 17 00:00:00 2001 From: pokamest Date: Sun, 4 Dec 2022 21:54:22 +0100 Subject: [PATCH 3/3] Remove travis builds and tiny refactoring --- .travis.yml | 343 ------------------ client/client.pro | 4 +- .../windows/amneziavpn.rc} | 2 +- 3 files changed, 3 insertions(+), 346 deletions(-) delete mode 100644 .travis.yml rename client/{platform_win/vpnclient.rc => platforms/windows/amneziavpn.rc} (95%) diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9e16ef5f..00000000 --- a/.travis.yml +++ /dev/null @@ -1,343 +0,0 @@ -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 - diff --git a/client/client.pro b/client/client.pro index bf9db7ed..7840ae6a 100644 --- a/client/client.pro +++ b/client/client.pro @@ -155,8 +155,8 @@ TRANSLATIONS = \ win32 { DEFINES += MVPN_WINDOWS - OTHER_FILES += platform_win/vpnclient.rc - RC_FILE = platform_win/vpnclient.rc + OTHER_FILES += platforms/windows/amneziavpn.rc + RC_FILE = platforms/windows/amneziavpn.rc HEADERS += \ protocols/ikev2_vpn_protocol_windows.h \ diff --git a/client/platform_win/vpnclient.rc b/client/platforms/windows/amneziavpn.rc similarity index 95% rename from client/platform_win/vpnclient.rc rename to client/platforms/windows/amneziavpn.rc index b12fbfcb..05365077 100644 --- a/client/platform_win/vpnclient.rc +++ b/client/platforms/windows/amneziavpn.rc @@ -1,7 +1,7 @@ #include LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -IDI_ICON1 ICON "../images/app.ico" +IDI_ICON1 ICON "../../images/app.ico" #define VER_FILEVERSION 2,0,0,0 #define VER_FILEVERSION_STR "2.0.0.0\0"