1515jobs :
1616 checkout :
1717 name : " Checkout"
18- runs-on : ubuntu-latest
18+ runs-on : ubuntu-22.04
1919
2020 steps :
2121 - name : Cache checkout
4444
4545 pcre_suite :
4646 name : " Import PCRE suite"
47- runs-on : ubuntu-latest
47+ runs-on : ${{ matrix.os }}
48+ strategy :
49+ matrix :
50+ os : [ ubuntu-22.04 ]
4851 needs : [ build ] # for cvtpcre
4952
5053 steps :
@@ -71,15 +74,15 @@ jobs:
7174 id : cache-cvtpcre
7275 with :
7376 path : ${{ env.cvtpcre }}
74- key : cvtpcre-bmake-ubuntu -gcc-DEBUG-AUSAN-${{ github.sha }}-${{ env.pcre2 }}
77+ key : cvtpcre-bmake-${{ matrix.os }} -gcc-DEBUG-AUSAN-${{ github.sha }}-${{ env.pcre2 }}
7578
7679 - name : Fetch build
7780 if : steps.cache-cvtpcre.outputs.cache-hit != 'true'
7881 uses : actions/cache@v4
7982 id : cache-build
8083 with :
8184 path : ${{ env.build }}
82- key : build-bmake-ubuntu -gcc-DEBUG-AUSAN-${{ github.sha }} # arbitary build, just for cvtpcre
85+ key : build-bmake-${{ matrix.os }} -gcc-DEBUG-AUSAN-${{ github.sha }} # arbitrary build, just for cvtpcre
8386
8487 - name : Convert PCRE suite
8588 if : steps.cache-cvtpcre.outputs.cache-hit != 'true'
@@ -130,14 +133,14 @@ jobs:
130133
131134 build :
132135 name : " Build ${{ matrix.san }} ${{ matrix.cc }} ${{ matrix.os }} ${{ matrix.debug }}"
133- runs-on : ${{ matrix.os }}-latest
136+ runs-on : ${{ matrix.os }}
134137 needs : [ checkout ]
135138
136139 strategy :
137140 fail-fast : true
138141 matrix :
139142 san : [ NO_SANITIZER, AUSAN, MSAN, EFENCE, FUZZER ] # NO_SANITIZER=1 is a no-op
140- os : [ ubuntu ]
143+ os : [ ubuntu-22.04 ]
141144 cc : [ clang, gcc ]
142145 make : [ bmake ] # we test makefiles separately
143146 debug : [ DEBUG, RELEASE ] # RELEASE=1 is a no-op
@@ -169,7 +172,7 @@ jobs:
169172 key : build-${{ matrix.make }}-${{ matrix.os }}-${{ matrix.cc }}-${{ matrix.debug }}-${{ matrix.san }}-${{ github.sha }}
170173
171174 - name : Dependencies (Ubuntu)
172- if : matrix.os == 'ubuntu' && steps.cache-build.outputs.cache-hit != 'true'
175+ if : matrix.os == 'ubuntu-22.04 ' && steps.cache-build.outputs.cache-hit != 'true'
173176 run : |
174177 uname -a
175178 sudo apt-get install bmake electric-fence
@@ -216,14 +219,14 @@ jobs:
216219 # of the build during CI, even if we don't run that during tests.
217220 test_makefiles :
218221 name : " Test (Makefiles) ${{ matrix.make }} ${{ matrix.os }} ${{ matrix.debug }}"
219- runs-on : ${{ matrix.os }}-latest
222+ runs-on : ${{ matrix.os }}
220223 needs : [ checkout, build ]
221224
222225 strategy :
223226 fail-fast : false
224227 matrix :
225228 san : [ NO_SANITIZER ] # NO_SANITIZER=1 is a no-op
226- os : [ ubuntu ]
229+ os : [ ubuntu-22.04 ]
227230 cc : [ clang ]
228231 make : [ bmake, pmake ]
229232 debug : [ EXPENSIVE_CHECKS, DEBUG, RELEASE ] # RELEASE=1 is a no-op
@@ -258,7 +261,7 @@ jobs:
258261 run : find ${{ env.wc }} -type f -name '*.c' | sort -r | head -5 | xargs touch
259262
260263 - name : Dependencies (Ubuntu)
261- if : matrix.os == 'ubuntu'
264+ if : matrix.os == 'ubuntu-22.04 '
262265 run : |
263266 uname -a
264267 sudo apt-get install pmake bmake pcregrep
@@ -301,14 +304,14 @@ jobs:
301304
302305 test_san :
303306 name : " Test (Sanitizers) ${{ matrix.san }} ${{ matrix.cc }} ${{ matrix.os }} ${{ matrix.debug }}"
304- runs-on : ${{ matrix.os }}-latest
307+ runs-on : ${{ matrix.os }}
305308 needs : [ build ]
306309
307310 strategy :
308311 fail-fast : false
309312 matrix :
310313 san : [ AUSAN, MSAN, EFENCE ]
311- os : [ ubuntu ]
314+ os : [ ubuntu-22.04 ]
312315 cc : [ clang, gcc ]
313316 make : [ bmake ]
314317 debug : [ DEBUG, RELEASE ] # RELEASE=1 is a no-op
@@ -329,7 +332,7 @@ jobs:
329332 key : checkout-${{ github.sha }}
330333
331334 - name : Dependencies (Ubuntu)
332- if : matrix.os == 'ubuntu'
335+ if : matrix.os == 'ubuntu-22.04 '
333336 run : |
334337 uname -a
335338 sudo apt-get install bmake pcregrep electric-fence
@@ -362,15 +365,15 @@ jobs:
362365
363366 test_fuzz :
364367 name : " Fuzz (mode ${{ matrix.mode }}) ${{ matrix.cc }} ${{ matrix.os }} ${{ matrix.debug }}"
365- runs-on : ${{ matrix.os }}-latest
368+ runs-on : ${{ matrix.os }}
366369 timeout-minutes : 5 # this should never be reached, it's a safeguard for bugs in the fuzzer itself
367370 needs : [ build ]
368371
369372 strategy :
370373 fail-fast : false
371374 matrix :
372375 san : [ FUZZER ]
373- os : [ ubuntu ]
376+ os : [ ubuntu-22.04 ]
374377 cc : [ clang ]
375378 make : [ bmake ]
376379 debug : [ DEBUG, RELEASE ] # RELEASE=1 is a no-op
@@ -388,7 +391,7 @@ jobs:
388391 key : checkout-${{ github.sha }}
389392
390393 - name : Dependencies (Ubuntu)
391- if : matrix.os == 'ubuntu'
394+ if : matrix.os == 'ubuntu-22.04 '
392395 run : |
393396 uname -a
394397 sudo apt-get install bmake
@@ -470,14 +473,14 @@ jobs:
470473
471474 test_pcre :
472475 name : " Test (PCRE suite) ${{ matrix.lang }} ${{ matrix.san }} ${{ matrix.cc }} ${{ matrix.os }} ${{ matrix.debug }}"
473- runs-on : ${{ matrix.os }}-latest
476+ runs-on : ${{ matrix.os }}
474477 needs : [ pcre_suite ] # and also build, but pcre_suite gives us that
475478
476479 strategy :
477480 fail-fast : false
478481 matrix :
479482 san : [ AUSAN, MSAN, EFENCE ]
480- os : [ ubuntu ]
483+ os : [ ubuntu-22.04 ]
481484 cc : [ clang, gcc ]
482485 make : [ bmake ]
483486 debug : [ DEBUG, RELEASE ] # RELEASE=1 is a no-op
@@ -492,7 +495,7 @@ jobs:
492495
493496 steps :
494497 - name : Dependencies (Ubuntu)
495- if : matrix.os == 'ubuntu' && matrix.san == 'EFENCE'
498+ if : matrix.os == 'ubuntu-22.04 ' && matrix.san == 'EFENCE'
496499 run : |
497500 uname -a
498501 sudo apt-get install electric-fence
@@ -506,7 +509,7 @@ jobs:
506509 ${{ matrix.cc }} --version
507510
508511 - name : Dependencies (Ubuntu/Go)
509- if : matrix.os == 'ubuntu' && (matrix.lang == 'go' || matrix.lang == 'goasm')
512+ if : matrix.os == 'ubuntu-22.04 ' && (matrix.lang == 'go' || matrix.lang == 'goasm')
510513 run : |
511514 uname -a
512515 sudo apt-get install golang
@@ -524,14 +527,14 @@ jobs:
524527 id : cache-cvtpcre
525528 with :
526529 path : ${{ env.cvtpcre }}
527- key : cvtpcre-bmake-ubuntu -gcc-DEBUG-AUSAN-${{ github.sha }}-${{ env.pcre2 }}
530+ key : cvtpcre-bmake-${{ matrix.os }} -gcc-DEBUG-AUSAN-${{ github.sha }}-${{ env.pcre2 }}
528531
529532 - name : Run PCRE suite (${{ matrix.lang }})
530533 run : CC=${{ matrix.cc }} ./${{ env.build }}/bin/retest -O1 -l ${{ matrix.lang }} ${{ env.cvtpcre }}/*.tst
531534
532535 docs :
533536 name : Documentation
534- runs-on : ubuntu-latest
537+ runs-on : ubuntu-22.04
535538 needs : [ checkout ]
536539
537540 env :
@@ -582,12 +585,12 @@ jobs:
582585
583586 install :
584587 name : Install
585- runs-on : ubuntu-latest
588+ runs-on : ubuntu-22.04
586589 needs : [ build, docs ]
587590
588591 env :
589592 san : NO_SANITIZER # NO_SANITIZER=1 is a no-op
590- os : ubuntu
593+ os : ubuntu-22.04
591594 cc : clang
592595 make : bmake
593596 debug : RELEASE # RELEASE=1 is a no-op
@@ -601,7 +604,7 @@ jobs:
601604 key : prefix-${{ env.make }}-${{ env.os }}-${{ env.cc }}-${{ env.debug }}-${{ env.san }}-${{ github.sha }}
602605
603606 - name : Dependencies (Ubuntu)
604- if : env.os == 'ubuntu' && steps.cache-prefix.outputs.cache-hit != 'true'
607+ if : env.os == 'ubuntu-22.04 ' && steps.cache-prefix.outputs.cache-hit != 'true'
605608 run : |
606609 uname -a
607610 sudo apt-get install bmake
@@ -643,12 +646,12 @@ jobs:
643646
644647 fpm :
645648 name : Package ${{ matrix.pkg }}
646- runs-on : ubuntu-latest
649+ runs-on : ubuntu-22.04
647650 needs : [ install ]
648651
649652 env :
650653 san : NO_SANITIZER # NO_SANITIZER=1 is a no-op
651- os : ubuntu
654+ os : ubuntu-22.04
652655 cc : clang
653656 make : bmake
654657 debug : RELEASE # RELEASE=1 is a no-op
@@ -661,7 +664,7 @@ jobs:
661664
662665 steps :
663666 - name : Dependencies (Ubuntu)
664- if : env.os == 'ubuntu'
667+ if : env.os == 'ubuntu-22.04 '
665668 run : |
666669 uname -a
667670 sudo gem install --no-document fpm
0 commit comments