YAML · 7978 bytes Raw Blame History
1 name: Test Suite
2
3 on:
4 push:
5 branches: [trunk]
6 pull_request:
7 branches: [trunk]
8
9 jobs:
10 # ============================================================================
11 # x86_64 Linux (gfortran)
12 # ============================================================================
13 posix-tests:
14 name: POSIX Tests
15 runs-on: ubuntu-latest
16 steps:
17 - uses: actions/checkout@v4
18 - name: Install gfortran
19 run: sudo apt-get update && sudo apt-get install -y gfortran
20 - name: Build fortsh
21 run: make release
22 - name: Run POSIX tests
23 run: ./tests/run_all_tests.sh --posix-only
24
25 builtin-tests:
26 name: Builtin Tests
27 runs-on: ubuntu-latest
28 steps:
29 - uses: actions/checkout@v4
30 - name: Install gfortran
31 run: sudo apt-get update && sudo apt-get install -y gfortran
32 - name: Build fortsh
33 run: make release
34 - name: Run builtin tests
35 run: ./tests/builtins/run_builtin_tests.sh --verbose
36
37 stress-tests:
38 name: Stress Tests
39 runs-on: ubuntu-latest
40 steps:
41 - uses: actions/checkout@v4
42 - name: Install gfortran
43 run: sudo apt-get update && sudo apt-get install -y gfortran
44 - name: Build fortsh
45 run: make release
46 - name: Run stress tests
47 run: ./tests/builtins/test_stress.sh
48 timeout-minutes: 10
49
50 integration-tests:
51 name: Integration Tests
52 runs-on: ubuntu-latest
53 steps:
54 - uses: actions/checkout@v4
55 - name: Install gfortran
56 run: sudo apt-get update && sudo apt-get install -y gfortran
57 - name: Build fortsh
58 run: make release
59 - name: Run integration tests
60 run: ./tests/builtins/integration/run_integration_tests.sh --verbose
61
62 interactive-tests:
63 name: Interactive PTY Tests
64 if: "!contains(github.event.head_commit.message, '[skip-pty]')"
65 runs-on: ubuntu-latest
66 steps:
67 - uses: actions/checkout@v4
68 - name: Install gfortran
69 run: sudo apt-get update && sudo apt-get install -y gfortran
70 - name: Set up Python
71 uses: actions/setup-python@v5
72 with:
73 python-version: '3.12'
74 - name: Build fortsh
75 run: make release
76 - name: Install Python dependencies
77 run: |
78 cd tests/interactive
79 python -m venv .venv
80 source .venv/bin/activate
81 pip install -r requirements.txt
82 - name: Run interactive tests
83 run: |
84 cd tests/interactive
85 source .venv/bin/activate
86 python run_tests.py
87
88 # ============================================================================
89 # ARM64 Linux (gfortran)
90 # ============================================================================
91 arm64-linux-interactive:
92 name: "ARM64 Linux: Interactive PTY Tests"
93 if: "!contains(github.event.head_commit.message, '[skip-pty]')"
94 runs-on: ubuntu-24.04-arm
95 steps:
96 - uses: actions/checkout@v4
97 - name: Install gfortran
98 run: sudo apt-get update && sudo apt-get install -y gfortran
99 - name: Set up Python
100 uses: actions/setup-python@v5
101 with:
102 python-version: '3.12'
103 - name: Build fortsh
104 run: make release
105 - name: Install Python dependencies
106 run: |
107 cd tests/interactive
108 python -m venv .venv
109 source .venv/bin/activate
110 pip install -r requirements.txt
111 - name: Run interactive tests
112 run: |
113 cd tests/interactive
114 source .venv/bin/activate
115 python run_tests.py
116
117 arm64-linux-posix:
118 name: "ARM64 Linux: POSIX Tests"
119 runs-on: ubuntu-24.04-arm
120 steps:
121 - uses: actions/checkout@v4
122 - name: Install gfortran
123 run: sudo apt-get update && sudo apt-get install -y gfortran
124 - name: Build fortsh
125 run: make release
126 - name: Run POSIX tests
127 run: ./tests/run_all_tests.sh --posix-only
128
129 arm64-linux-builtins:
130 name: "ARM64 Linux: Builtin Tests"
131 runs-on: ubuntu-24.04-arm
132 steps:
133 - uses: actions/checkout@v4
134 - name: Install gfortran
135 run: sudo apt-get update && sudo apt-get install -y gfortran
136 - name: Build fortsh
137 run: make release
138 - name: Run builtin tests
139 run: ./tests/builtins/run_builtin_tests.sh --verbose
140
141 arm64-linux-stress:
142 name: "ARM64 Linux: Stress Tests"
143 runs-on: ubuntu-24.04-arm
144 steps:
145 - uses: actions/checkout@v4
146 - name: Install gfortran
147 run: sudo apt-get update && sudo apt-get install -y gfortran
148 - name: Build fortsh
149 run: make release
150 - name: Run stress tests
151 run: ./tests/builtins/test_stress.sh
152 timeout-minutes: 10
153
154 arm64-linux-integration:
155 name: "ARM64 Linux: Integration Tests"
156 runs-on: ubuntu-24.04-arm
157 steps:
158 - uses: actions/checkout@v4
159 - name: Install gfortran
160 run: sudo apt-get update && sudo apt-get install -y gfortran
161 - name: Build fortsh
162 run: make release
163 - name: Run integration tests
164 run: ./tests/builtins/integration/run_integration_tests.sh --verbose
165
166 # ============================================================================
167 # macOS Apple Silicon (flang-new)
168 # ============================================================================
169 macos-arm64-posix:
170 name: "macOS ARM64: POSIX Tests"
171 runs-on: macos-15
172 env:
173 FC: flang-new
174 BASH_REF: /opt/homebrew/bin/bash
175 steps:
176 - uses: actions/checkout@v4
177 - name: Install flang-new and coreutils
178 run: brew install flang coreutils bash
179 - name: Build fortsh
180 run: make release
181 - name: Run POSIX tests
182 run: ./tests/run_all_tests.sh --posix-only
183
184 macos-arm64-builtins:
185 name: "macOS ARM64: Builtin Tests"
186 runs-on: macos-15
187 env:
188 FC: flang-new
189 BASH_REF: /opt/homebrew/bin/bash
190 steps:
191 - uses: actions/checkout@v4
192 - name: Install flang-new and coreutils
193 run: brew install flang coreutils bash
194 - name: Build fortsh
195 run: make release
196 - name: Run builtin tests
197 run: ./tests/builtins/run_builtin_tests.sh --verbose
198
199 macos-arm64-stress:
200 name: "macOS ARM64: Stress Tests"
201 runs-on: macos-15
202 env:
203 FC: flang-new
204 BASH_REF: /opt/homebrew/bin/bash
205 steps:
206 - uses: actions/checkout@v4
207 - name: Install flang-new and coreutils
208 run: brew install flang coreutils bash
209 - name: Build fortsh
210 run: make release
211 - name: Run stress tests
212 run: ./tests/builtins/test_stress.sh
213 timeout-minutes: 15
214
215 macos-arm64-interactive:
216 name: "macOS ARM64: Interactive PTY Tests"
217 if: "!contains(github.event.head_commit.message, '[skip-pty]')"
218 runs-on: macos-15
219 env:
220 FC: flang-new
221 BASH_REF: /opt/homebrew/bin/bash
222 steps:
223 - uses: actions/checkout@v4
224 - name: Install flang-new and coreutils
225 run: brew install flang coreutils bash
226 - name: Set up Python
227 uses: actions/setup-python@v5
228 with:
229 python-version: '3.12'
230 - name: Build fortsh
231 run: make release
232 - name: Install Python dependencies
233 run: |
234 cd tests/interactive
235 python -m venv .venv
236 source .venv/bin/activate
237 pip install -r requirements.txt
238 - name: Run interactive tests
239 run: |
240 cd tests/interactive
241 source .venv/bin/activate
242 python run_tests.py
243
244 macos-arm64-integration:
245 name: "macOS ARM64: Integration Tests"
246 runs-on: macos-15
247 env:
248 FC: flang-new
249 BASH_REF: /opt/homebrew/bin/bash
250 steps:
251 - uses: actions/checkout@v4
252 - name: Install flang-new and coreutils
253 run: brew install flang coreutils bash
254 - name: Build fortsh
255 run: make release
256 - name: Run integration tests
257 run: ./tests/builtins/integration/run_integration_tests.sh --verbose
258