-
-
Notifications
You must be signed in to change notification settings - Fork 0
153 lines (153 loc) · 4.21 KB
/
Copy pathci.yml
File metadata and controls
153 lines (153 loc) · 4.21 KB
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
---
jobs:
etc:
name: 'FreeBSD/v${{matrix.perl}}'
needs:
- setup
strategy:
fail-fast: false
matrix:
os:
- architecture: x86-64
host: ubuntu-latest
name: freebsd
pkg: pkg install -y
version: 14.1
- architecture: arm64
host: ubuntu-latest
name: freebsd
pkg: pkg install -y
version: 14.1
perl:
- 5.40
max-parallel: 5
uses: ./.github/workflows/cross.yml
with:
arch: '${{ matrix.os.architecture }}'
host: '${{ matrix.os.host }}'
os: '${{ matrix.os.name }}'
perl: '${{ matrix.perl }}'
pkg: '${{ matrix.os.pkg }}'
setup: '${{ matrix.os.setup }}'
version: '${{ matrix.os.version }}'
linux:
name: 'Linux/v${{matrix.perl}}'
needs:
- setup
strategy:
fail-fast: false
matrix:
flags: '${{ fromJSON(needs.setup.outputs.matrix).flags }}'
os:
- ubuntu-24.04
perl: '${{ fromJSON(needs.setup.outputs.matrix).perl }}'
max-parallel: 25
uses: ./.github/workflows/unix.yml
with:
flags: '${{ matrix.flags }}'
os: '${{ matrix.os }}'
perl: '${{ matrix.perl }}'
macos:
name: "[${{ matrix.os == 'macos-15-intel' && 'Intel' || 'M1' }}] macOS/v${{matrix.perl}}"
needs:
- setup
strategy:
fail-fast: false
matrix:
exclude:
- flags: -Dusequadmath
- flags: -Dusethreads
flags: '${{ fromJSON(needs.setup.outputs.matrix).flags }}'
os:
- macos-15-intel
- macos-15
perl: '${{ fromJSON(needs.setup.outputs.matrix).perl }}'
max-parallel: 25
uses: ./.github/workflows/unix.yml
with:
flags: '${{ matrix.flags }}'
os: '${{ matrix.os }}'
perl: '${{ matrix.perl }}'
results:
name: Results
needs:
- macos
- win32
- linux
runs-on: ubuntu-22.04
steps:
- name: Download test results
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Report test results
run: |
# Function to process a directory
process_dir() {
local dir="$1"
# Loop through each element in the directory
for file in "$dir"/*; do
# Check if it's a directory
if [ -d "$file" ]; then
# Recursively call process_dir for subdirectories (except .)
if [ "$file" != "." ]; then
process_dir "$file"
fi
# If it's a regular file, print its content
elif [ -f "$file" ]; then
echo "================> $file <================"
cat "$file"
echo "" # Add an empty line between files
fi
done
}
# Get the directory path from the first argument (or current directory)
dir=${1:-.}
# Process the specified directory
process_dir "artifacts"
setup:
name: Generate Testing Matrix
outputs:
matrix: '${{ steps.matrix.outputs.matrix }}'
runs-on: ubuntu-22.04
steps:
- env:
DATA: |
{
"perl": ["5.42.0"],
"flags": ["", "-Dusethreads", "-Duselongdouble", "-Dusequadmath", "--debug", "-DDEBUGGING=both", "-DDEBUGGING=-g", "-Doptimize=-g", "-DDEBUGGING=none", "-UDEBUGGING"]
}
id: matrix
run: "jq -rn 'env.DATA | fromjson | @json \"matrix=\\(.)\"' > $GITHUB_OUTPUT\n"
win32:
name: 'Windows/v${{matrix.perl}}'
needs:
- setup
strategy:
fail-fast: false
matrix:
exclude:
- flags: -Duselongdouble
- flags: -Dusequadmath
flags:
- -Dusethreads
- ''
os:
- windows-2022
perl: '${{ fromJSON(needs.setup.outputs.matrix).perl }}'
max-parallel: 25
uses: ./.github/workflows/win32.yml
with:
flags: '${{ matrix.flags }}'
os: '${{ matrix.os }}'
perl: '${{ matrix.perl }}'
name: CI Matrix
on:
pull_request: ~
push: ~
schedule:
- cron: 42 5 * * 0
workflow_dispatch: ~
permissions:
actions: read
contents: read