-
Notifications
You must be signed in to change notification settings - Fork 109
131 lines (122 loc) · 4.41 KB
/
debian_based_CI.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Debian Based CI
on:
# push:
# paths:
# - "qbittorrent-nox-static.sh"
pull_request:
workflow_dispatch:
inputs:
distinct_id:
description: "Distinct id"
skip_rerun:
description: "Skip rerun?"
required: true
type: boolean
retries:
description: "Number of rerun retries"
required: true
default: "1"
type: choice
options: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
container_id: [debian, ubuntu]
container_codename: [bookworm, jammy, noble]
qbt_build_tool: ["qmake", "cmake"]
qbt_libtorrent_version: ["1.2", "2.0"]
exclude:
- container_id: debian
container_codename: focal
- container_id: debian
container_codename: jammy
- container_id: debian
container_codename: noble
- container_id: ubuntu
container_codename: bullseye
- container_id: ubuntu
container_codename: bookworm
include:
- qbt_build_tool: "qmake"
qbt_qt_version: "5"
- qbt_build_tool: "cmake"
qbt_qt_version: "6"
name: "${{ matrix.container_id }}-${{ matrix.container_codename }}-${{ matrix.qbt_libtorrent_version }}-qt-${{ matrix.qbt_qt_version }}-${{ matrix.qbt_build_tool }}"
env:
build_dir: "qbt-build"
artifact_name: "${{ matrix.container_id }}-${{ matrix.container_codename }}-${{ matrix.qbt_libtorrent_version }}-qt-${{ matrix.qbt_qt_version }}-${{ matrix.qbt_build_tool }}-nox"
container:
image: ${{ matrix.container_id }}:${{ matrix.container_codename }}
env:
LANG: en_GB.UTF-8
DEBIAN_FRONTEND: noninteractive
TZ: Europe/London
qbt_libtorrent_version: ${{ matrix.qbt_libtorrent_version }}
qbt_qt_version: ${{ matrix.qbt_qt_version }}
qbt_build_tool: ${{ matrix.qbt_build_tool }}
qbt_cross_name: ""
qbt_patches_url: ${{ github.repository }}
qbt_skip_icu: no
qbt_boost_tag: ""
qbt_libtorrent_tag: ""
qbt_qt_tag: ""
qbt_qbittorrent_tag: ""
qbt_libtorrent_master_jamfile: no
qbt_workflow_files: yes
qbt_workflow_artifacts: no
qbt_cache_dir: ""
qbt_optimise_strip: yes
qbt_build_debug: no
qbt_revision_url: ${{ github.repository }}
steps:
- uses: actions/checkout@v4
- name: Host - update
run: apt-get update
- name: Host - upgrade
run: apt-get -y upgrade
- run: bash qbittorrent-nox-static.sh -bs-a
- run: bash qbittorrent-nox-static.sh glibc
- run: bash qbittorrent-nox-static.sh zlib
- run: bash qbittorrent-nox-static.sh iconv
- run: bash qbittorrent-nox-static.sh icu
- run: bash qbittorrent-nox-static.sh openssl
- run: bash qbittorrent-nox-static.sh boost
- run: bash qbittorrent-nox-static.sh libtorrent
- run: bash qbittorrent-nox-static.sh double_conversion
if: matrix.qbt_build_tool == 'cmake'
- run: bash qbittorrent-nox-static.sh qtbase
- run: bash qbittorrent-nox-static.sh qttools
- run: bash qbittorrent-nox-static.sh qbittorrent
- name: Host - qBittorrent v5 transition
run: |
# When qBittorrent v5 is released, remove this
if [[ -f ${{ env.qbt_build_dir }}/release_info/disable-qt5 ]]; then
printf '%s\n' "disable_qt5=yes" >> $GITHUB_ENV
fi
- name: Archive code coverage results
if: env.disable_qt5 != 'yes' # When qBittorrent v5 is released, remove this
uses: actions/upload-artifact@v4
with:
name: ${{ env.artifact_name }}
path: ${{ env.build_dir }}/completed/qbittorrent-nox
rerun-on-failure:
if: failure() && inputs.skip_rerun == '0'
name: rerun-on-failure
needs: build
permissions:
actions: write
runs-on: ubuntu-latest
env:
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
steps:
- uses: actions/checkout@v4
- name: Trigger rerun workflow on job failures
run: |
inputs_retries="${{ inputs.retries }}"
gh workflow run rerun.yml -f run_id=${{ github.run_id }} -f attempts=${{ github.run_attempt }} -f retries=${inputs_retries:-1}