@@ -18,6 +18,7 @@ concurrency:
1818 cancel-in-progress : true
1919
2020env :
21+ LANG : C.UTF-8
2122 GIT_FETCH_JOBS : 8
2223 NET_RETRY_COUNT : 5
2324 DEFAULT_BUILD_VARIANT : debug,release
@@ -313,6 +314,36 @@ jobs:
313314 - libc++-18-dev
314315 - libc++abi-18-dev
315316
317+ - toolset : clang
318+ vm : freebsd
319+ version : " 14.3"
320+ cxxstd64 : " 11,14,17,20,23,26"
321+ os : ubuntu-latest
322+
323+ - toolset : clang
324+ vm : openbsd
325+ version : " 7.7"
326+ cxxstd64 : " 11,14,17,20,2b"
327+ os : ubuntu-latest
328+
329+ - toolset : gcc
330+ vm : netbsd
331+ version : " 10.1"
332+ cxxstd64 : " 11,14,17,20"
333+ os : ubuntu-latest
334+
335+ - toolset : gcc
336+ vm : dragonflybsd
337+ version : " 6.4.0"
338+ cxxstd64 : " 11,14,17,2a"
339+ os : ubuntu-latest
340+
341+ - toolset : gcc
342+ vm : solaris
343+ version : " 11.4-gcc"
344+ cxxstd64 : " 11,14,17,20,23,26"
345+ os : ubuntu-latest
346+
316347 - toolset : clang
317348 os : macos-14
318349 cxxstd : " 11,14,17,20,2b"
@@ -512,25 +543,23 @@ jobs:
512543 fi
513544 DEPINST_ARGS+=("$LIBRARY")
514545 python tools/boostdep/depinst/depinst.py "${DEPINST_ARGS[@]}"
515- if [ -z "${{matrix.cmake_tests}}" ]
546+ rm -rf ".git"
547+ cd ..
548+ cat > b2-run-tests.sh << "EOF"
549+ #!/usr/bin/env bash
550+ set -e
551+ cd boost-root
552+ ./bootstrap.sh
553+ ./b2 headers
554+ if [ -n "${{matrix.compiler}}" -o -n "$GCC_TOOLCHAIN_ROOT" ]
516555 then
517- ./bootstrap.sh
518- ./b2 headers
519- if [ -n "${{matrix.compiler}}" -o -n "$GCC_TOOLCHAIN_ROOT" ]
556+ echo -n "using ${{matrix.toolset}} : : ${{matrix.compiler}}" > ~/user-config.jam
557+ if [ -n "$GCC_TOOLCHAIN_ROOT" ]
520558 then
521- echo -n "using ${{matrix.toolset}} : : ${{matrix.compiler}}" > ~/user-config.jam
522- if [ -n "$GCC_TOOLCHAIN_ROOT" ]
523- then
524- echo -n " : <compileflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" <linkflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam
525- fi
526- echo " ;" >> ~/user-config.jam
559+ echo -n " : <compileflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" <linkflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam
527560 fi
561+ echo " ;" >> ~/user-config.jam
528562 fi
529-
530- - name : Run tests
531- if : matrix.cmake_tests == ''
532- run : |
533- cd boost-root
534563 if [ -n "${{matrix.extra_tests}}" ]
535564 then
536565 export BOOST_FILESYSTEM_TEST_WITH_EXAMPLES=1
@@ -561,6 +590,141 @@ jobs:
561590 fi
562591 B2_ARGS+=("libs/$LIBRARY/test")
563592 ./b2 "${B2_ARGS[@]}"
593+ EOF
594+ chmod +x b2-run-tests.sh
595+
596+ # Note: The VMs must be created after the workspace is fully prepared, as it will be copied to the VM only once
597+ - name : Setup FreeBSD VM
598+ if : matrix.vm == 'freebsd'
599+ uses : vmactions/freebsd-vm@v1
600+ with :
601+ release : " ${{matrix.version}}"
602+ usesh : true
603+ sync : rsync
604+ copyback : false
605+ envs : " LANG LIBRARY DEFAULT_BUILD_VARIANT BUILD_JOBS GCC_TOOLCHAIN_ROOT"
606+ prepare : |
607+ pkg install -y bash
608+ run : |
609+ uname -mrs
610+ sysctl hw.model
611+ sysctl hw.ncpu
612+ sysctl hw.physmem
613+ sysctl hw.usermem
614+ pwd
615+ ls -la
616+
617+ - name : Setup OpenBSD VM
618+ if : matrix.vm == 'openbsd'
619+ uses : vmactions/openbsd-vm@v1
620+ with :
621+ release : " ${{matrix.version}}"
622+ usesh : true
623+ sync : rsync
624+ copyback : false
625+ envs : " LANG LIBRARY DEFAULT_BUILD_VARIANT BUILD_JOBS GCC_TOOLCHAIN_ROOT"
626+ prepare : |
627+ pkg_add bash
628+ run : |
629+ uname -mrs
630+ sysctl hw.model
631+ sysctl hw.ncpu
632+ sysctl hw.physmem
633+ sysctl hw.usermem
634+ pwd
635+ ls -la
636+
637+ - name : Setup NetBSD VM
638+ if : matrix.vm == 'netbsd'
639+ uses : vmactions/netbsd-vm@v1
640+ with :
641+ release : " ${{matrix.version}}"
642+ usesh : true
643+ sync : rsync
644+ copyback : false
645+ envs : " LANG LIBRARY DEFAULT_BUILD_VARIANT BUILD_JOBS GCC_TOOLCHAIN_ROOT"
646+ run : |
647+ uname -mrs
648+ /sbin/sysctl hw.model
649+ /sbin/sysctl hw.ncpu
650+ /sbin/sysctl hw.physmem64
651+ /sbin/sysctl hw.usermem64
652+ pwd
653+ ls -la
654+
655+ - name : Setup DragonFlyBSD VM
656+ if : matrix.vm == 'dragonflybsd'
657+ uses : vmactions/dragonflybsd-vm@v1
658+ with :
659+ release : " ${{matrix.version}}"
660+ usesh : true
661+ sync : rsync
662+ copyback : false
663+ envs : " LANG LIBRARY DEFAULT_BUILD_VARIANT BUILD_JOBS GCC_TOOLCHAIN_ROOT"
664+ prepare : |
665+ pkg install -y bash
666+ run : |
667+ uname -mrs
668+ sysctl hw.model
669+ sysctl hw.ncpu
670+ sysctl hw.physmem
671+ sysctl hw.usermem
672+ pwd
673+ ls -la
674+
675+ - name : Setup Solaris VM
676+ if : matrix.vm == 'solaris'
677+ uses : vmactions/solaris-vm@v1
678+ with :
679+ release : " ${{matrix.version}}"
680+ usesh : true
681+ sync : rsync
682+ copyback : false
683+ envs : " LANG LIBRARY DEFAULT_BUILD_VARIANT BUILD_JOBS GCC_TOOLCHAIN_ROOT"
684+ run : |
685+ uname -mrs
686+ pwd
687+ ls -la
688+
689+ - name : Run tests
690+ if : matrix.cmake_tests == '' && matrix.vm == ''
691+ run : |
692+ bash ./b2-run-tests.sh
693+
694+ - name : Run tests (FreeBSD VM)
695+ if : matrix.cmake_tests == '' && matrix.vm == 'freebsd'
696+ shell : freebsd {0}
697+ run : |
698+ cd "$GITHUB_WORKSPACE"
699+ bash ./b2-run-tests.sh
700+
701+ - name : Run tests (OpenBSD VM)
702+ if : matrix.cmake_tests == '' && matrix.vm == 'openbsd'
703+ shell : openbsd {0}
704+ run : |
705+ cd "$GITHUB_WORKSPACE"
706+ bash ./b2-run-tests.sh
707+
708+ - name : Run tests (NetBSD VM)
709+ if : matrix.cmake_tests == '' && matrix.vm == 'netbsd'
710+ shell : netbsd {0}
711+ run : |
712+ cd "$GITHUB_WORKSPACE"
713+ bash ./b2-run-tests.sh
714+
715+ - name : Run tests (DragonFlyBSD VM)
716+ if : matrix.cmake_tests == '' && matrix.vm == 'dragonflybsd'
717+ shell : dragonflybsd {0}
718+ run : |
719+ cd "$GITHUB_WORKSPACE"
720+ bash ./b2-run-tests.sh
721+
722+ - name : Run tests (Solaris VM)
723+ if : matrix.cmake_tests == '' && matrix.vm == 'solaris'
724+ shell : solaris {0}
725+ run : |
726+ cd "$GITHUB_WORKSPACE"
727+ bash ./b2-run-tests.sh
564728
565729 - name : Run CMake tests
566730 if : matrix.cmake_tests
0 commit comments