Skip to content

Commit 2c6a213

Browse files
committed
GitHubCI: add Ubuntu24.04 linux lanes
1 parent b1572f5 commit 2c6a213

File tree

1 file changed

+297
-14
lines changed

1 file changed

+297
-14
lines changed

.github/workflows/CI.yml

Lines changed: 297 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,283 @@ jobs:
221221
222222
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
223223
224-
linux-github--dotnet-and-mono:
224+
linux24-github--dotnet-and-mono:
225+
runs-on: ubuntu-24.04
226+
steps:
227+
- uses: actions/checkout@v1
228+
with:
229+
submodules: false
230+
- name: install missing dependencies
231+
run: sudo apt install --yes fsharp nunit-console
232+
- name: check mono version
233+
run: mono --version
234+
- name: configure
235+
run: ./configure.sh
236+
- name: build in DEBUG mode
237+
run: make
238+
- name: sanity check
239+
run: make sanitycheck
240+
- name: unit tests
241+
run: make check
242+
- name: build in STRICT mode
243+
run: git clean -fdx && ./configure.sh && make strict
244+
- name: build in RELEASE mode
245+
run: git clean -fdx && ./configure.sh && make release
246+
- name: integration tests
247+
run: make update-servers
248+
- name: compile .fsx scripts
249+
run: |
250+
dotnet new tool-manifest
251+
252+
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }}
253+
254+
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
255+
256+
linux24-github--dotnet-and-newmono:
257+
runs-on: ubuntu-22.04
258+
steps:
259+
- uses: actions/checkout@v1
260+
with:
261+
submodules: false
262+
- name: install missing dependencies
263+
run: sudo apt install --yes fsharp nunit-console
264+
- name: install last version of mono (Microsoft APT repositories)
265+
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh
266+
- name: check mono version
267+
run: mono --version
268+
- name: install GTK libs (dependency of GTK frontend)
269+
run: sudo apt install --yes libgtk2.0-cil-dev
270+
- name: configure
271+
run: ./configure.sh
272+
- name: build in DEBUG mode (retry 3 times because of flakey XamForms restore)
273+
# TODO: remove retry when we migrate to .NET6 (removing LEGACY_FRAMEWORK support)
274+
run: make || make || make || make
275+
- name: sanity check
276+
run: make sanitycheck
277+
- name: unit tests
278+
run: make check
279+
- name: build in STRICT mode
280+
run: git clean -fdx && ./configure.sh && make strict
281+
- name: build in RELEASE mode
282+
run: git clean -fdx && ./configure.sh && make release
283+
- name: integration tests
284+
run: make update-servers
285+
- name: compile .fsx scripts
286+
run: |
287+
dotnet new tool-manifest
288+
289+
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }}
290+
291+
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
292+
293+
linux24-vanilla--stockmono-only:
294+
runs-on: ubuntu-24.04
295+
container:
296+
image: "ubuntu:22.04"
297+
steps:
298+
- uses: actions/checkout@v1
299+
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
300+
# with:
301+
# submodules: 'true'
302+
303+
- name: install sudo
304+
run: apt update && apt install --yes sudo
305+
- name: install all dependencies
306+
run: |
307+
# needed by fsx submodule
308+
sudo apt install --yes curl
309+
310+
sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make fsharp nunit-console
311+
312+
# workaround for https://github.com/actions/runner/issues/2033
313+
- name: ownership workaround
314+
run: git config --global --add safe.directory '*'
315+
316+
- name: check mono version
317+
run: mono --version
318+
- name: configure
319+
run: ./configure.sh
320+
- name: build in DEBUG mode
321+
run: make
322+
- name: sanity check
323+
run: make sanitycheck
324+
- name: unit tests
325+
run: make check
326+
- name: build in STRICT mode
327+
run: git clean -fdx && ./configure.sh && make strict
328+
- name: build in RELEASE mode
329+
run: git clean -fdx && ./configure.sh && make release
330+
- name: integration tests
331+
run: make update-servers
332+
333+
linux24-vanilla--stockdotnet6-only:
334+
runs-on: ubuntu-24.04
335+
container:
336+
image: "ubuntu:24.04"
337+
steps:
338+
- uses: actions/checkout@v1
339+
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
340+
# with:
341+
# submodules: 'true'
342+
343+
- name: install sudo
344+
run: apt update && apt install --yes sudo
345+
- name: install all dependencies
346+
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet6
347+
348+
# workaround for https://github.com/actions/runner/issues/2033
349+
- name: ownership workaround
350+
run: git config --global --add safe.directory '*'
351+
352+
- name: configure
353+
run: ./configure.sh
354+
- name: build in DEBUG mode
355+
run: make
356+
- name: sanity check
357+
run: make sanitycheck
358+
- name: unit tests
359+
run: make check
360+
- name: build in STRICT mode
361+
run: git clean -fdx && ./configure.sh && make strict
362+
- name: build in RELEASE mode
363+
run: git clean -fdx && ./configure.sh && make release
364+
- name: integration tests
365+
run: make update-servers
366+
- name: compile .fsx scripts
367+
run: |
368+
dotnet new tool-manifest
369+
370+
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }}
371+
372+
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
373+
374+
linux24-vanilla--stockdotnet6-and-newmono:
375+
runs-on: ubuntu-24.04
376+
container:
377+
image: "ubuntu:24.04"
378+
steps:
379+
- uses: actions/checkout@v1
380+
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
381+
# with:
382+
# submodules: 'true'
383+
384+
- name: install sudo
385+
run: apt update && apt install --yes sudo
386+
- name: install all dependencies
387+
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet6
388+
- name: install last version of mono (Microsoft APT repositories)
389+
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh
390+
391+
# workaround for https://github.com/actions/runner/issues/2033
392+
- name: ownership workaround
393+
run: git config --global --add safe.directory '*'
394+
395+
- name: configure
396+
run: ./configure.sh
397+
- name: build in DEBUG mode
398+
run: make
399+
- name: sanity check
400+
run: make sanitycheck
401+
- name: unit tests
402+
run: make check
403+
- name: build in STRICT mode
404+
run: git clean -fdx && ./configure.sh && make strict
405+
- name: build in RELEASE mode
406+
run: git clean -fdx && ./configure.sh && make release
407+
- name: integration tests
408+
run: make update-servers
409+
- name: compile .fsx scripts
410+
run: |
411+
dotnet new tool-manifest
412+
413+
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }}
414+
415+
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
416+
417+
linux24-vanilla--stockdotnet6-and-stockmono:
418+
runs-on: ubuntu-24.04
419+
container:
420+
image: "ubuntu:24.04"
421+
steps:
422+
- uses: actions/checkout@v1
423+
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
424+
# with:
425+
# submodules: 'true'
426+
427+
- name: install sudo
428+
run: apt update && apt install --yes sudo
429+
- name: install all dependencies
430+
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet6 mono-xbuild fsharp
431+
- name: install GTK libs (dependency of GTK frontend)
432+
run: sudo apt install --yes libgtk2.0-cil-dev
433+
# workaround for https://github.com/actions/runner/issues/2033
434+
- name: ownership workaround
435+
run: git config --global --add safe.directory '*'
436+
437+
- name: configure
438+
run: ./configure.sh
439+
- name: build in DEBUG mode
440+
run: make
441+
- name: sanity check
442+
run: make sanitycheck
443+
- name: unit tests
444+
run: make check
445+
- name: build in STRICT mode
446+
run: git clean -fdx && ./configure.sh && make strict
447+
- name: build in RELEASE mode
448+
run: git clean -fdx && ./configure.sh && make release
449+
- name: integration tests
450+
run: make update-servers
451+
- name: compile .fsx scripts
452+
run: |
453+
dotnet new tool-manifest
454+
455+
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }}
456+
457+
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
458+
459+
linux24-vanilla--newmono-only:
460+
runs-on: ubuntu-24.04
461+
container:
462+
image: "ubuntu:24.04"
463+
steps:
464+
- uses: actions/checkout@v1
465+
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
466+
# with:
467+
# submodules: 'true'
468+
469+
- name: install sudo
470+
run: apt update && apt install --yes sudo
471+
- name: install all dependencies
472+
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make fsharp nunit-console
473+
- name: install last version of mono (Microsoft APT repositories)
474+
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh
475+
476+
# workaround for https://github.com/actions/runner/issues/2033
477+
- name: ownership workaround
478+
run: git config --global --add safe.directory '*'
479+
480+
- name: check mono version
481+
run: mono --version
482+
- name: install GTK libs (dependency of GTK frontend)
483+
run: sudo apt install --yes libgtk2.0-cil-dev
484+
- name: configure
485+
run: ./configure.sh
486+
- name: build in DEBUG mode (retry 3 times because of flakey XamForms restore)
487+
# TODO: remove retry when we migrate to .NET6 (removing LEGACY_FRAMEWORK support)
488+
run: make || make || make || make
489+
- name: sanity check
490+
run: make sanitycheck
491+
- name: unit tests
492+
run: make check
493+
- name: build in STRICT mode
494+
run: git clean -fdx && ./configure.sh && make strict
495+
- name: build in RELEASE mode
496+
run: git clean -fdx && ./configure.sh && make release
497+
- name: integration tests
498+
run: make update-servers
499+
500+
linux22-github--dotnet-and-mono:
225501
runs-on: ubuntu-22.04
226502
steps:
227503
- uses: actions/checkout@v1
@@ -253,7 +529,7 @@ jobs:
253529
254530
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
255531
256-
linux-github--dotnet-and-newmono:
532+
linux22-github--dotnet-and-newmono:
257533
runs-on: ubuntu-22.04
258534
steps:
259535
- uses: actions/checkout@v1
@@ -290,7 +566,7 @@ jobs:
290566
291567
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
292568
293-
linux-vanilla--stockmono-only:
569+
linux22-vanilla--stockmono-only:
294570
runs-on: ubuntu-22.04
295571
container:
296572
image: "ubuntu:22.04"
@@ -330,7 +606,7 @@ jobs:
330606
- name: integration tests
331607
run: make update-servers
332608

333-
linux-vanilla--stockdotnet6-only:
609+
linux22-vanilla--stockdotnet6-only:
334610
runs-on: ubuntu-22.04
335611
container:
336612
image: "ubuntu:22.04"
@@ -371,7 +647,7 @@ jobs:
371647
372648
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
373649
374-
linux-vanilla--stockdotnet6-and-newmono:
650+
linux22-vanilla--stockdotnet6-and-newmono:
375651
runs-on: ubuntu-22.04
376652
container:
377653
image: "ubuntu:22.04"
@@ -414,7 +690,7 @@ jobs:
414690
415691
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
416692
417-
linux-vanilla--stockdotnet6-and-stockmono:
693+
linux22-vanilla--stockdotnet6-and-stockmono:
418694
runs-on: ubuntu-22.04
419695
container:
420696
image: "ubuntu:22.04"
@@ -456,7 +732,7 @@ jobs:
456732
457733
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}
458734
459-
linux-vanilla--newmono-only:
735+
linux22-vanilla--newmono-only:
460736
runs-on: ubuntu-22.04
461737
container:
462738
image: "ubuntu:22.04"
@@ -502,13 +778,20 @@ jobs:
502778
container:
503779
image: "ubuntu:22.04"
504780
needs:
505-
- linux-github--dotnet-and-mono
506-
- linux-github--dotnet-and-newmono
507-
- linux-vanilla--stockmono-only
508-
- linux-vanilla--newmono-only
509-
- linux-vanilla--stockdotnet6-only
510-
- linux-vanilla--stockdotnet6-and-stockmono
511-
- linux-vanilla--stockdotnet6-and-newmono
781+
- linux24-github--dotnet-and-mono
782+
- linux24-github--dotnet-and-newmono
783+
- linux24-vanilla--stockmono-only
784+
- linux24-vanilla--newmono-only
785+
- linux24-vanilla--stockdotnet6-only
786+
- linux24-vanilla--stockdotnet6-and-stockmono
787+
- linux24-vanilla--stockdotnet6-and-newmono
788+
- linux22-github--dotnet-and-mono
789+
- linux22-github--dotnet-and-newmono
790+
- linux22-vanilla--stockmono-only
791+
- linux22-vanilla--newmono-only
792+
- linux22-vanilla--stockdotnet6-only
793+
- linux22-vanilla--stockdotnet6-and-stockmono
794+
- linux22-vanilla--stockdotnet6-and-newmono
512795
- windows--dotnet6-and-legacyFramework
513796
- windows--legacyFramework-only
514797
- windows--dotnet6-only

0 commit comments

Comments
 (0)