Skip to content

Commit

Permalink
Version 3.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Desktop Commit Bot committed Oct 3, 2023
1 parent 2b61d3f commit b7ac51a
Show file tree
Hide file tree
Showing 971 changed files with 3,358 additions and 1,193 deletions.
7 changes: 4 additions & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
*.ts text eol=lf
/CHANGELOG.md merge=union eol=lf text
*.sh text eol=lf

# Diff UTF-16LE *.rc Windows resource scripts
*.rc diff=rcdiff
# Add to your ~/.gitconfig:
#[diff "rcdiff"]
# textconv = "iconv -f utf-16le -t utf-8"

# Use LFS for everything under deps/built/
# While file extension globs are pretty good for most LFS files,
# these directories contain macOS/Linux executables with no
Expand All @@ -20,10 +18,13 @@ deps/built/*/** filter=lfs diff=lfs merge=lfs -text
deps/built/linux/**/*.so !filter !diff !merge
deps/built/linux/**/*.so.? !filter !diff !merge

# Missing lfs files after migration
deps/zip/zip.exe filter=lfs diff=lfs merge=lfs -text
tools/crash_test_dll/crashtest.dll filter=lfs diff=lfs merge=lfs -text

# dump_syms binaries - similar to deps/built, contains
# extensionless macOS binary
deps/dump_syms/** filter=lfs diff=lfs merge=lfs -text

# File types to store in LFS
*.sys filter=lfs diff=lfs merge=lfs -text
*.cat filter=lfs diff=lfs merge=lfs -text
Expand Down
159 changes: 159 additions & 0 deletions .github/workflows/build_linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
name: pia_desktop/linux
on:
workflow_call:
secrets:
PIA_ACCOUNT_NAME:
required: true
PIA_ACCOUNT_PWD:
required: true
inputs:
BRAND:
required: true
type: string

concurrency:
group: "${{ github.ref }}-linux"
cancel-in-progress: true

jobs:
linux_x64_build:
runs-on:
- ubuntu-latest
container:
image: debian:10-slim
options: --privileged
timeout-minutes: 120
env:
GITHUB_CI: 1
QTROOT: /opt/5.15.2
LANG: en_US.UTF-8
BUILD_BRAND: ${{ inputs.BRAND }}
BUILD_ARCHITECTURE: x86_64
BUILD_VARIANT: release
APP_OUT_PATH: ./out/pia_release_x86_64
steps:
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential git git-lfs ruby-full rake clang-7 git python3 python3-pip arch-test mesa-common-dev libnl-3-dev libnl-route-3-dev libnl-genl-3-dev zlib1g libglib2.0-0 libgl1-mesa-glx patchelf curl
git lfs install --system
# Avoid git permission issues
git config --global --add safe.directory '*'
gem install bundler -v 2.3.17
cd /opt
python3 -m pip install -U pip
python3 -m pip install aqtinstall
python3 -m aqt install-qt linux desktop 5.15.2 gcc_64
- uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- name: Setup sccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
max-size: 1000M
variant: sccache
- name: Build and package
shell: bash
run: |
scripts-internal/ci_rake out/pia_release_x86_64/artifacts/debug.zip
- uses: actions/upload-artifact@v3
if: success()
with:
name: "linux-debug"
retention-days: 28
path: |-
out/pia_release_x86_64/artifacts/debug.zip
- name: Install app and log in
env:
PIA_ACCOUNT_NAME: ${{ secrets.PIA_ACCOUNT_NAME }}
PIA_ACCOUNT_PWD: ${{ secrets.PIA_ACCOUNT_PWD }}
run: |
echo "Installing dependencies..."
apt-get install -y procps sudo iproute2 iptables libglib2.0-0
# Create a non-root user to run the installation scripts
useradd pia
echo "pia ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
install_file=$(find $APP_OUT_PATH/artifacts/ -name "pia-linux*.run")
echo "Installing $install_file..."
# Run with --skip-service as the install script can't find a boot manager in the docker container
su pia -c "$install_file -- --skip-service"
echo "Launching PIA..."
# Launch the daemon and send the logs to a file
# The daemon doesn't log anything to the file with a standard redirect
setsid script --return -c '/opt/piavpn/bin/pia-daemon' pia-daemon.log > /dev/null < /dev/null &
piactl background enable
echo "Signing in..."
touch ~/pia_login
echo "$PIA_ACCOUNT_NAME" >> ~/pia_login
echo "$PIA_ACCOUNT_PWD" >> ~/pia_login
piactl login ~/pia_login
- name: Build integration tests
run: |
echo "Building integration tests..."
scripts-internal/ci_rake integtest_deploy
- name: Run integration tests
id: int_tests
run: |
echo "Running integration tests..."
$APP_OUT_PATH/integtest/pia-integtest/bin/pia-integtest
- name: Show pia logs if integration tests fail
if: always() && steps.int_tests.outcome == 'failure'
run: |
cat pia-daemon.log
linux_x64_unit_test:
runs-on:
- ubuntu-latest
container:
image: debian:10-slim
timeout-minutes: 120
env:
GITHUB_CI: 1
QTROOT: /opt/5.15.2
LANG: en_US.UTF-8
BUILD_BRAND: ${{ inputs.BRAND }}
BUILD_ARCHITECTURE: x86_64
BUILD_VARIANT: release
steps:
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential git git-lfs ruby-full rake clang-7 git python3 python3-pip arch-test mesa-common-dev libnl-3-dev libnl-route-3-dev libnl-genl-3-dev zlib1g libglib2.0-0 libgl1-mesa-glx patchelf curl
git lfs install --system
# Avoid git permission issues
git config --global --add safe.directory '*'
gem install bundler -v 2.3.17
cd /opt
python3 -m pip install -U pip
python3 -m pip install aqtinstall
python3 -m aqt install-qt linux desktop 5.15.2 gcc_64
- uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- name: Setup sccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
max-size: 1000M
variant: sccache
- name: Build unit tests
shell: bash
run: |
scripts-internal/ci_rake build_tests_parallel
- name: Run tests with coverage
shell: bash
run: |
scripts-internal/ci_rake coverage
- uses: actions/upload-artifact@v3
if: success()
with:
name: "linux-coverage"
retention-days: 28
path: |-
out/pia_release_x86_64/coverage
78 changes: 78 additions & 0 deletions .github/workflows/build_linux_arm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: pia_desktop/linux_arm
on:
workflow_call:
inputs:
BRAND:
required: true
type: string

concurrency:
group: "${{ github.ref }}-linux-arm"
cancel-in-progress: true

jobs:
linux_arm:
strategy:
matrix:
arch: ['armhf', 'arm64']
runs-on:
- ubuntu-latest
container:
image: debian:10-slim
# chroot must run with privileges
options: --privileged
timeout-minutes: 120
env:
GITHUB_CI: 1
QTROOT: /opt/5.15.2
LANG: en_US.UTF-8
CROSS_ARCH: ${{ matrix.arch }}
steps:
- name: Install dependencies
shell: bash
run: |
apt-get update
apt-get install -y debootstrap schroot curl git git-lfs xz-utils python
git lfs install --system
# Avoid git permission issues
git config --global --add safe.directory '*'
(
PIA_QT_INSTALLER_URL="https://privateinternetaccess-storage.s3.amazonaws.com/pub/pia_desktop/qt/2021-01-23/qt-5.15.2-pia-linux-${CROSS_ARCH}.run" &&
wget $PIA_QT_INSTALLER_URL -nv -O qt_installer_${CROSS_ARCH}.sh && chmod +x qt_installer_${CROSS_ARCH}.sh &&
bash -c "./qt_installer_${CROSS_ARCH}.sh --accept --quiet --noprogress --nox11 --target /tmp/Qt <<< /opt" &&
rm -f qt_installer_${CROSS_ARCH}.sh
) &
(
PIA_QT_INSTALLER_URL="https://privateinternetaccess-storage.s3.amazonaws.com/pub/pia_desktop/qt/2021-01-23/qt-5.15.2-pia-linux-x86_64.run" &&
wget $PIA_QT_INSTALLER_URL -nv -O qt_installer_x86_64.sh && chmod +x qt_installer_x86_64.sh &&
bash -c "./qt_installer_x86_64.sh --accept --quiet --noprogress --nox11 --target /tmp/Qt_x86_64 <<< /opt" &&
rm -f qt_installer_x86_64.sh
) &
echo Waiting for Qt installations
wait
# Requirement for chroot setup
addgroup crontab
- uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- name: Build chroot
run: |
scripts/chroot/setup-as-root.sh --bind $(pwd) --bind /opt --cross-target $CROSS_ARCH
- name: Build and package
shell: bash
run: |
OPTIONS="VARIANT=release ARCHITECTURE=$CROSS_ARCH BRAND=${{ inputs.BRAND }}"
TARGET="out/pia_release_${CROSS_ARCH}_stretch/artifacts/debug.zip"
scripts/chroot/enter.sh $CROSS_ARCH -- rake -j$(nproc) $OPTIONS $TARGET
# Move the target file to the working directory to simplify its path
mv $TARGET debug.zip
# Remove any other debug.zip files to avoid uploading unnecesary files
find out -name 'debug.zip' -exec rm -f {} \;
- uses: actions/upload-artifact@v3
if: success()
with:
name: "linux-${{ matrix.arch }}-debug"
retention-days: 28
# For whatever reason, the upload won't find the file if we specify the full path
path: ./**/debug.zip
Loading

0 comments on commit b7ac51a

Please sign in to comment.