-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Desktop Commit Bot
committed
Oct 3, 2023
1 parent
2b61d3f
commit b7ac51a
Showing
971 changed files
with
3,358 additions
and
1,193 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Oops, something went wrong.