mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-10-22 10:46:04 +03:00
GHA CI: Backport latest changes (#15361)
By having unified github workflows, the building cache would be utilized more efficiently as the total cache size will be smaller (no more vcpkg caching on macOS CI) and will stop thrashing the build cache (large vcpkg cache evicts other smaller cache). Relevant PRs: #15321 #15340 #15342 #15355
This commit is contained in:
parent
250cac73b6
commit
fefce03379
8 changed files with 294 additions and 293 deletions
240
.github/workflows/ci.yaml
vendored
240
.github/workflows/ci.yaml
vendored
|
@ -1,240 +0,0 @@
|
||||||
name: GitHub Actions CI
|
|
||||||
|
|
||||||
# Cache is used for all Windows and macOS dependencies (size approx. 1230 * 2 + 1850 = 4310 MiB)
|
|
||||||
# Cache is not used for Ubuntu builds, because it already has all dependencies except
|
|
||||||
# the appropriate libtorrent version, which only takes 3-5 minutes to build from source anyway
|
|
||||||
|
|
||||||
on: [pull_request, push]
|
|
||||||
|
|
||||||
env:
|
|
||||||
VCPKG_COMMIT: e4ce66eecfd3e5cca5eac06c971921bf8e37cf88
|
|
||||||
VCPKG_DEST_MACOS: /Users/runner/qbt_tools/vcpkg
|
|
||||||
VCPKG_DEST_WIN: C:\qbt_tools\vcpkg
|
|
||||||
LIBTORRENT_VERSION_TAG: v1.2.12
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
|
|
||||||
ci_ubuntu:
|
|
||||||
name: Ubuntu
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-20.04]
|
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
|
||||||
fail-fast: false
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: install all build dependencies except libtorrent from Ubuntu repos
|
|
||||||
run: |
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install \
|
|
||||||
build-essential cmake git ninja-build pkg-config \
|
|
||||||
libssl-dev libgeoip-dev zlib1g-dev \
|
|
||||||
libboost-dev libboost-chrono-dev libboost-random-dev libboost-system-dev \
|
|
||||||
libqt5svg5-dev qtbase5-dev qttools5-dev
|
|
||||||
|
|
||||||
- name: install libtorrent from source
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/arvidn/libtorrent && cd libtorrent
|
|
||||||
git checkout ${{ env.LIBTORRENT_VERSION_TAG }}
|
|
||||||
cmake -B cmake-build-dir -G "Ninja" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-Ddeprecated-functions=OFF \
|
|
||||||
--graphviz=cmake-build-dir/target_graph.dot
|
|
||||||
cmake --build cmake-build-dir
|
|
||||||
sudo cmake --install cmake-build-dir --prefix /usr/local
|
|
||||||
|
|
||||||
- name: build qBittorrent
|
|
||||||
run: |
|
|
||||||
cmake -B build -G "Ninja" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-D${{ matrix.qbt_gui }} \
|
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
|
||||||
--graphviz=build/target_graph.dot
|
|
||||||
cmake --build build
|
|
||||||
|
|
||||||
- name: upload artifact as zip
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: qBittorrent-CI_${{ matrix.os }}-x64_${{ matrix.qbt_gui }}
|
|
||||||
path: |
|
|
||||||
build/compile_commands.json
|
|
||||||
build/target_graph.dot
|
|
||||||
build/qbittorrent
|
|
||||||
build/qbittorrent-nox
|
|
||||||
libtorrent/cmake-build-dir/compile_commands.json
|
|
||||||
libtorrent/cmake-build-dir/target_graph.dot
|
|
||||||
|
|
||||||
ci_windows:
|
|
||||||
name: Windows + vcpkg
|
|
||||||
|
|
||||||
runs-on: windows-2019
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
# - ninja is needed for building qBittorrent (because it's preferrable, not a hard requirement)
|
|
||||||
- name: install additional required packages with chocolatey
|
|
||||||
run: |
|
|
||||||
choco install ninja
|
|
||||||
|
|
||||||
- name: setup vcpkg (cached, if possible)
|
|
||||||
uses: lukka/run-vcpkg@v4
|
|
||||||
with:
|
|
||||||
vcpkgDirectory: ${{ env.VCPKG_DEST_WIN }}
|
|
||||||
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
|
|
||||||
setupOnly: true
|
|
||||||
|
|
||||||
# Tell vcpkg to only build Release variants of the dependencies
|
|
||||||
- name: configure vcpkg triplet overlay for release builds only
|
|
||||||
run: |
|
|
||||||
New-Item -Path ${{ github.workspace }} -Name "triplets_overlay" -ItemType Directory
|
|
||||||
Copy-Item ${{ env.RUNVCPKG_VCPKG_ROOT }}/triplets/x64-windows-static.cmake `
|
|
||||||
${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake
|
|
||||||
Add-Content ${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake `
|
|
||||||
-Value "set(VCPKG_BUILD_TYPE release)"
|
|
||||||
|
|
||||||
# clear buildtrees after each package installation to reduce disk space requirements
|
|
||||||
- name: install dependencies via vcpkg
|
|
||||||
run: |
|
|
||||||
$packages = `
|
|
||||||
"boost-circular-buffer:x64-windows-static-release",
|
|
||||||
"libtorrent:x64-windows-static-release",
|
|
||||||
"qt5-base:x64-windows-static-release",
|
|
||||||
"qt5-svg:x64-windows-static-release",
|
|
||||||
"qt5-tools:x64-windows-static-release",
|
|
||||||
"qt5-winextras:x64-windows-static-release"
|
|
||||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe upgrade `
|
|
||||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
|
||||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
|
||||||
--no-dry-run
|
|
||||||
foreach($package in $packages)
|
|
||||||
{
|
|
||||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe install $package `
|
|
||||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
|
||||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
|
||||||
--clean-after-build
|
|
||||||
}
|
|
||||||
|
|
||||||
# NOTE: this is necessary to correctly find and use cl.exe with the Ninja generator for now
|
|
||||||
- name: setup devcmd
|
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
|
||||||
|
|
||||||
- name: build qBittorrent
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cmake -B build -G "Ninja" ^
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo ^
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_DEST_WIN }}\scripts\buildsystems\vcpkg.cmake ^
|
|
||||||
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release ^
|
|
||||||
-DVERBOSE_CONFIGURE=ON ^
|
|
||||||
-DMSVC_RUNTIME_DYNAMIC=OFF ^
|
|
||||||
--graphviz=build\target_graph.dot
|
|
||||||
cmake --build build
|
|
||||||
|
|
||||||
- name: upload artifact as zip
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: qBittorrent-CI_Windows-x64
|
|
||||||
path: |
|
|
||||||
build/compile_commands.json
|
|
||||||
build/target_graph.dot
|
|
||||||
build/qbittorrent.exe
|
|
||||||
build/qbittorrent.pdb
|
|
||||||
dist/windows/qt.conf
|
|
||||||
|
|
||||||
ci_macos:
|
|
||||||
name: macOS + vcpkg
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
|
||||||
fail-fast: false
|
|
||||||
|
|
||||||
runs-on: macos-10.15
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
# - ninja is needed for building qBittorrent (because it's preferrable, not a hard requirement)
|
|
||||||
# - automake is needed for the installation the vcpkg installation of fontconfig, a dependency of qt5-base
|
|
||||||
- name: install additional required packages with homebrew
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
brew install automake ninja
|
|
||||||
|
|
||||||
- name: setup vcpkg (cached, if possible)
|
|
||||||
uses: lukka/run-vcpkg@v4
|
|
||||||
with:
|
|
||||||
vcpkgDirectory: ${{ env.VCPKG_DEST_MACOS }}
|
|
||||||
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
|
|
||||||
setupOnly: true
|
|
||||||
|
|
||||||
- name: configure vcpkg triplet overlay for release builds only
|
|
||||||
run: |
|
|
||||||
New-Item -Path ${{ github.workspace }} -Name "triplets_overlay" -ItemType Directory
|
|
||||||
Copy-Item ${{ env.RUNVCPKG_VCPKG_ROOT }}/triplets/x64-osx.cmake `
|
|
||||||
${{ github.workspace }}/triplets_overlay/x64-osx-release.cmake
|
|
||||||
Add-Content ${{ github.workspace }}/triplets_overlay/x64-osx-release.cmake `
|
|
||||||
-Value "set(VCPKG_BUILD_TYPE release)","set(VCPKG_OSX_DEPLOYMENT_TARGET 10.15)"
|
|
||||||
|
|
||||||
- name: install dependencies via vcpkg
|
|
||||||
run: |
|
|
||||||
$packages = `
|
|
||||||
"boost-circular-buffer:x64-osx-release",
|
|
||||||
"libtorrent:x64-osx-release",
|
|
||||||
"qt5-base:x64-osx-release",
|
|
||||||
"qt5-svg:x64-osx-release",
|
|
||||||
"qt5-tools:x64-osx-release",
|
|
||||||
"qt5-macextras:x64-osx-release"
|
|
||||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg upgrade `
|
|
||||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
|
||||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
|
||||||
--no-dry-run
|
|
||||||
foreach($package in $packages)
|
|
||||||
{
|
|
||||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg install $package `
|
|
||||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
|
||||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
|
||||||
--clean-after-build
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: build qBittorrent
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
cmake -B build -G "Ninja" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_DEST_MACOS }}/scripts/buildsystems/vcpkg.cmake \
|
|
||||||
-DVCPKG_TARGET_TRIPLET=x64-osx-release \
|
|
||||||
-D${{ matrix.qbt_gui }} \
|
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
|
||||||
--graphviz=build/target_graph.dot
|
|
||||||
cmake --build build
|
|
||||||
|
|
||||||
- name: upload artifact as zip
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}
|
|
||||||
path: |
|
|
||||||
build/compile_commands.json
|
|
||||||
build/target_graph.dot
|
|
||||||
build/qbittorrent.app
|
|
||||||
build/qbittorrent-nox.app
|
|
20
.github/workflows/ci_file_health.yaml
vendored
Normal file
20
.github/workflows/ci_file_health.yaml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
name: CI - File health
|
||||||
|
|
||||||
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
name: Check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install tools
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install zsh
|
||||||
|
|
||||||
|
- name: Check files
|
||||||
|
run: |
|
||||||
|
./.github/workflows/file_health.sh
|
73
.github/workflows/ci_macos.yaml
vendored
Normal file
73
.github/workflows/ci_macos.yaml
vendored
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
name: CI - macOS
|
||||||
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
name: Build
|
||||||
|
runs-on: macos-10.15
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
libt_version: ["v1.2.12"]
|
||||||
|
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
env:
|
||||||
|
openssl_root: /usr/local/opt/openssl@1.1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup ccache
|
||||||
|
uses: hendrikmuhs/ccache-action@v1
|
||||||
|
with:
|
||||||
|
key: ${{ runner.os }}
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
brew update > /dev/null
|
||||||
|
brew install \
|
||||||
|
cmake ninja \
|
||||||
|
boost openssl@1.1 qt@5 zlib
|
||||||
|
brew link --force \
|
||||||
|
qt@5
|
||||||
|
# workaround for cmake + Qt
|
||||||
|
sudo ln -s /usr/local/opt/qt@5/mkspecs /usr/local/mkspecs
|
||||||
|
sudo ln -s /usr/local/opt/qt@5/plugins /usr/local/plugins
|
||||||
|
|
||||||
|
- name: Install libtorrent
|
||||||
|
run: |
|
||||||
|
git clone --branch ${{ matrix.libt_version }} --depth 1 https://github.com/arvidn/libtorrent.git
|
||||||
|
cd libtorrent
|
||||||
|
git submodule update --init --recursive
|
||||||
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
cmake \
|
||||||
|
-B build \
|
||||||
|
-G "Ninja" \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DCMAKE_CXX_STANDARD=17 \
|
||||||
|
-Ddeprecated-functions=OFF \
|
||||||
|
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}"
|
||||||
|
cmake --build build
|
||||||
|
sudo cmake --install build
|
||||||
|
|
||||||
|
- name: Build qBittorrent
|
||||||
|
run: |
|
||||||
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
cmake \
|
||||||
|
-B build \
|
||||||
|
-G "Ninja" \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-D${{ matrix.qbt_gui }} \
|
||||||
|
-DVERBOSE_CONFIGURE=ON \
|
||||||
|
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}"
|
||||||
|
cmake --build build
|
||||||
|
|
||||||
|
- name: Upload build artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}
|
||||||
|
path: |
|
||||||
|
build/qbittorrent.app
|
||||||
|
build/qbittorrent-nox.app
|
84
.github/workflows/ci_ubuntu.yaml
vendored
Normal file
84
.github/workflows/ci_ubuntu.yaml
vendored
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
name: CI - Ubuntu
|
||||||
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
name: Build
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
libt_version: ["v1.2.12"]
|
||||||
|
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup ccache
|
||||||
|
uses: hendrikmuhs/ccache-action@v1
|
||||||
|
with:
|
||||||
|
key: ${{ runner.os }}
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install \
|
||||||
|
build-essential cmake git ninja-build pkg-config \
|
||||||
|
libssl-dev libgeoip-dev zlib1g-dev \
|
||||||
|
libboost-dev libboost-chrono-dev libboost-random-dev libboost-system-dev
|
||||||
|
# sudo apt install libqt5svg5-dev qtbase5-dev qttools5-dev # the Qt version in the standard repositories is too old...
|
||||||
|
|
||||||
|
# this will be installed under /opt/qt515. CMake will still find it automatically without additional hints
|
||||||
|
# to speed up the process, only the required components are installed rather than the full qt515-meta-full metapackage
|
||||||
|
- name: Install Qt
|
||||||
|
run: |
|
||||||
|
sudo add-apt-repository ppa:beineri/opt-qt-5.15.2-focal
|
||||||
|
sudo apt install \
|
||||||
|
qt515base qt515svg qt515tools
|
||||||
|
|
||||||
|
- name: Install libtorrent
|
||||||
|
run: |
|
||||||
|
git clone --branch ${{ matrix.libt_version }} --depth 1 https://github.com/arvidn/libtorrent.git
|
||||||
|
cd libtorrent
|
||||||
|
git submodule update --init --recursive
|
||||||
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
cmake \
|
||||||
|
-B build \
|
||||||
|
-G "Ninja" \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
|
-Ddeprecated-functions=OFF \
|
||||||
|
--graphviz=cmake-build-dir/target_graph.dot
|
||||||
|
cmake --build build
|
||||||
|
sudo cmake --install build
|
||||||
|
|
||||||
|
- name: Build qBittorrent
|
||||||
|
run: |
|
||||||
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
cmake \
|
||||||
|
-B build \
|
||||||
|
-G "Ninja" \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
|
-D${{ matrix.qbt_gui }} \
|
||||||
|
-DVERBOSE_CONFIGURE=ON \
|
||||||
|
--graphviz=build/target_graph.dot
|
||||||
|
cmake --build build
|
||||||
|
|
||||||
|
- name: Install qBittorrent
|
||||||
|
run: sudo cmake --install build
|
||||||
|
|
||||||
|
- name: Upload build artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: qBittorrent-CI_ubuntu-20.04-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}
|
||||||
|
path: |
|
||||||
|
build/compile_commands.json
|
||||||
|
build/install_manifest.txt
|
||||||
|
build/target_graph.dot
|
||||||
|
build/qbittorrent
|
||||||
|
build/qbittorrent-nox
|
||||||
|
libtorrent/cmake-build-dir/compile_commands.json
|
||||||
|
libtorrent/cmake-build-dir/target_graph.dot
|
32
.github/workflows/ci_webui.yaml
vendored
Normal file
32
.github/workflows/ci_webui.yaml
vendored
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
name: CI - WebUI
|
||||||
|
|
||||||
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
name: Check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: src/webui/www
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup nodejs
|
||||||
|
uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: 'lts/*'
|
||||||
|
|
||||||
|
- name: Install tools
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Lint code
|
||||||
|
run: npm run lint
|
||||||
|
|
||||||
|
- name: Format code
|
||||||
|
run: |
|
||||||
|
npm run format
|
||||||
|
git diff --exit-code
|
85
.github/workflows/ci_windows.yaml
vendored
Normal file
85
.github/workflows/ci_windows.yaml
vendored
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
name: CI - Windows
|
||||||
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
name: Build
|
||||||
|
runs-on: windows-2019
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install build tools
|
||||||
|
run: |
|
||||||
|
choco install ninja
|
||||||
|
|
||||||
|
# use the preinstalled vcpkg from image
|
||||||
|
# https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md#package-management
|
||||||
|
- name: Setup vcpkg
|
||||||
|
uses: lukka/run-vcpkg@v7
|
||||||
|
with:
|
||||||
|
vcpkgDirectory: C:/vcpkg
|
||||||
|
doNotUpdateVcpkg: true # the preinstalled vcpkg is updated regularly
|
||||||
|
setupOnly: true
|
||||||
|
|
||||||
|
# tell vcpkg to only build Release variants of the dependencies
|
||||||
|
- name: Configure vcpkg triplet overlay
|
||||||
|
run: |
|
||||||
|
New-Item `
|
||||||
|
-Path "${{ github.workspace }}" `
|
||||||
|
-Name "triplets_overlay" `
|
||||||
|
-ItemType Directory
|
||||||
|
Copy-Item `
|
||||||
|
"${{ env.RUNVCPKG_VCPKG_ROOT }}/triplets/x64-windows-static.cmake" `
|
||||||
|
"${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake"
|
||||||
|
Add-Content `
|
||||||
|
"${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake" `
|
||||||
|
-Value "set(VCPKG_BUILD_TYPE release)"
|
||||||
|
|
||||||
|
# clear buildtrees after each package installation to reduce disk space requirements
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
$packages = `
|
||||||
|
"boost-circular-buffer:x64-windows-static-release",
|
||||||
|
"libtorrent:x64-windows-static-release",
|
||||||
|
"qt5-base:x64-windows-static-release",
|
||||||
|
"qt5-svg:x64-windows-static-release",
|
||||||
|
"qt5-tools:x64-windows-static-release",
|
||||||
|
"qt5-winextras:x64-windows-static-release"
|
||||||
|
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe upgrade `
|
||||||
|
--overlay-triplets="${{ github.workspace }}/triplets_overlay" `
|
||||||
|
--no-dry-run
|
||||||
|
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe install `
|
||||||
|
--overlay-triplets="${{ github.workspace }}/triplets_overlay" `
|
||||||
|
--clean-after-build `
|
||||||
|
$packages
|
||||||
|
|
||||||
|
# this is necessary to correctly find and use cl.exe with the Ninja generator for now
|
||||||
|
- name: Setup devcmd
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
|
||||||
|
- name: Build qBittorrent
|
||||||
|
run: |
|
||||||
|
cmake `
|
||||||
|
-B build `
|
||||||
|
-G "Ninja" `
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
|
||||||
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
|
||||||
|
-DMSVC_RUNTIME_DYNAMIC=OFF `
|
||||||
|
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release `
|
||||||
|
-DVERBOSE_CONFIGURE=ON `
|
||||||
|
--graphviz=build/target_graph.dot
|
||||||
|
cmake --build build
|
||||||
|
|
||||||
|
- name: Upload build artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: qBittorrent-CI_Windows-x64
|
||||||
|
path: |
|
||||||
|
build/compile_commands.json
|
||||||
|
build/qbittorrent.exe
|
||||||
|
build/qbittorrent.pdb
|
||||||
|
build/target_graph.dot
|
||||||
|
dist/windows/qt.conf
|
22
.github/workflows/file_health.yaml
vendored
22
.github/workflows/file_health.yaml
vendored
|
@ -1,22 +0,0 @@
|
||||||
name: GitHub Actions file health check
|
|
||||||
|
|
||||||
on: [pull_request, push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check_file_health:
|
|
||||||
name: Check file health
|
|
||||||
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: install zsh
|
|
||||||
run: |
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install zsh
|
|
||||||
|
|
||||||
- name: run check file health script
|
|
||||||
run: |
|
|
||||||
./.github/workflows/file_health.sh
|
|
31
.github/workflows/webui_ci.yaml
vendored
31
.github/workflows/webui_ci.yaml
vendored
|
@ -1,31 +0,0 @@
|
||||||
name: WebUI CI
|
|
||||||
|
|
||||||
on: [pull_request, push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check_webui:
|
|
||||||
name: Check WebUI
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: src/webui/www
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: setup nodejs
|
|
||||||
uses: actions/setup-node@v2
|
|
||||||
with:
|
|
||||||
node-version: '14'
|
|
||||||
|
|
||||||
- name: install tools
|
|
||||||
run: npm install
|
|
||||||
|
|
||||||
- name: lint code
|
|
||||||
run: npm run lint
|
|
||||||
|
|
||||||
- name: format code
|
|
||||||
run: |
|
|
||||||
npm run format
|
|
||||||
git diff --exit-code
|
|
Loading…
Reference in a new issue