feat: rework CI/CD for Linux

This commit is contained in:
Yaroslav Gurov
2026-04-16 14:31:31 +02:00
parent d81c1e5c1a
commit 13955dd36b
2 changed files with 29 additions and 35 deletions

View File

@@ -38,7 +38,18 @@ jobs:
set-env: 'true'
aqtversion: '==3.3.0'
py7zrversion: '==0.22.*'
extra: '--base ${{ env.QT_MIRROR }}'
extra: '--base ${{ env.QT_MIRROR }}'
- name: 'Setup python'
uses: actions/setup-python@v6
with:
python-version: 3.14
- name: 'Install conan'
run: pip install "conan==2.26.2"
- name: 'Install system packages'
run: sudo apt-get install libxkbcommon-x11-0 libsecret-1-dev
- name: 'Get sources'
uses: actions/checkout@v4
@@ -46,38 +57,15 @@ jobs:
submodules: 'true'
fetch-depth: 10
- name: 'Get version from CMakeLists.txt'
id: get_version
run: |
VERSION=$(grep 'set(AMNEZIAVPN_VERSION' CMakeLists.txt | sed -E 's/.*AMNEZIAVPN_VERSION ([0-9]+.[0-9]+.[0-9]+.[0-9]+)\)/\1/')
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Version: $VERSION"
# - name: 'Setup ccache'
# uses: hendrikmuhs/ccache-action@v1.2
- name: 'Build project'
run: |
sudo apt-get install libxkbcommon-x11-0 libsecret-1-dev
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
- name: 'Pack installer'
run: cd deploy && tar -cf AmneziaVPN_Linux_Installer.tar AmneziaVPN_Linux_Installer.bin && zip AmneziaVPN_${VERSION}_linux_x64.tar.zip AmneziaVPN_Linux_Installer.tar
shell: bash
run: ./deploy/build.sh
- name: 'Upload installer artifact'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: AmneziaVPN_${{ env.VERSION }}_linux_x64.tar.zip
path: deploy/AmneziaVPN_${{ env.VERSION }}_linux_x64.tar.zip
retention-days: 7
- name: 'Upload unpacked artifact'
uses: actions/upload-artifact@v4
with:
name: AmneziaVPN_Linux_unpacked
path: deploy/AppDir
path: deploy/build/AmneziaVPN-*-Linux.run
archive: false
retention-days: 7
- name: 'Upload translations artifact'
@@ -411,10 +399,11 @@ jobs:
py7zrversion: '==0.22.*'
extra: '--base ${{ env.QT_MIRROR }}'
- uses: actions/setup-python@v6
- name: 'Setup python'
uses: actions/setup-python@v6
with:
python-version: 3.14
- name: 'Install conan'
run: pip install "conan==2.26.2"

View File

@@ -4,14 +4,19 @@ set -o errexit
PROJECT_DIR=$(pwd)
BUILD_DIR="$PROJECT_DIR/deploy/build"
folders=()
qt_folders=()
qif_folders=()
for base in ~/Qt /opt/Qt; do
for dir in "$base"/${QT_VERSION:-6.*}; do
[ -d "$dir" ] && folders+=("$dir")
[ -d "$dir" ] && qt_folders+=("$dir")
done
for dir in "$base"/Tools/QtInstallerFramework/${QIF_VERSION:-*}; do
[ -d "$dir" ] && qif_folders+=("$dir")
done
done
: ${QT_ROOT_PATH:=$(printf '%s\n' "${folders[@]}" | sort -V | tail -1)}
: ${QT_ROOT_PATH:=$(printf '%s\n' "${qt_folders[@]}" | sort -V | tail -1)}
: ${QIF_ROOT_PATH:=$(printf '%s\n' "${qif_folders[@]}" | sort -V | tail -1)}
case "$(uname -s)" in
Linux)
@@ -31,4 +36,4 @@ set -o xtrace
cmake -S "$PROJECT_DIR" -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release "${args[@]}"
cmake --build "$BUILD_DIR" --target all
(cd "$BUILD_DIR" && cpack)
(cd "$BUILD_DIR" && cpack -D QTIFWDIR="$QIF_ROOT_PATH")