-
Notifications
You must be signed in to change notification settings - Fork 133
100 lines (91 loc) · 2.71 KB
/
build-release.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
name: release
on:
push:
branches:
- main
- release-**
pull_request:
types:
- synchronize
- opened
- labeled
permissions:
contents: write # so it can comment
defaults:
run:
shell: bash --noprofile --norc -x -eo pipefail {0}
jobs:
check:
runs-on: ubuntu-latest
if: (github.event_name == 'push') ||
(github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'build-release') ||
(github.event_name == 'pull_request' && github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'build-release'))
outputs:
do: ${{ steps.check.outputs.do }}
steps:
- id: check
name: check if need to run the release build
run: |
cat $GITHUB_EVENT_PATH
echo "do=true" >> $GITHUB_OUTPUT
default:
needs: check
if: needs.check.outputs.do == 'true'
strategy:
fail-fast: false
matrix:
compiler: [gcc, clang]
ubuntu_version: [latest, 20.04]
include:
- compiler: gcc
ubuntu_version: latest
use_cache_key: ubuntu-latest-gcc-${{ github.sha }}
uses: ./.github/workflows/build-test.yml
with:
ubuntu_version: ${{ matrix.ubuntu_version }}
compiler: ${{ matrix.compiler }}
name: "ubuntu.${{ matrix.ubuntu_version }}-${{ matrix.compiler }}-latest"
use_cache_key: ${{ matrix.use_cache_key }}
more-server-versions:
needs: [check, default]
if: needs.check.outputs.do == 'true'
strategy:
fail-fast: false
matrix:
server_version: [main, dev, v2.9.11]
uses: ./.github/workflows/build-test.yml
with:
server_version: ${{ matrix.server_version }}
name: "ubuntu.latest-gcc-${{ matrix.server_version }}"
use_cache_key: ubuntu-latest-gcc-${{ github.sha }}
TLS-OFF:
needs: [check, default]
if: needs.check.outputs.do == 'true'
strategy:
fail-fast: false
matrix:
compiler: [gcc, clang]
uses: ./.github/workflows/build-test.yml
with:
tls: OFF
name: "ubuntu.latest-${{ matrix.compiler }}-latest: no TLS"
older-cc:
needs: [check, default]
if: needs.check.outputs.do == 'true'
strategy:
fail-fast: false
matrix:
compiler: [gcc-7, gcc-8, clang-8]
uses: ./.github/workflows/build-test.yml
with:
ubuntu_version: 20.04
compiler: ${{ matrix.compiler }}
quick_test: ON
name: "ubuntu.20.04-${{ matrix.compiler }}-quick-check"
no-streaming:
needs: [check, default]
if: needs.check.outputs.do == 'true'
uses: ./.github/workflows/build-test.yml
with:
streaming: OFF
name: "ubuntu.latest-gcc-latest: no streaming"