diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml new file mode 100644 index 00000000..fcdb92e4 --- /dev/null +++ b/.github/workflows/freebsd.yml @@ -0,0 +1,39 @@ +name: FreeBSD + +on: [push, pull_request] + +permissions: + contents: read + +jobs: + build_and_test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - ssl: openssl # currently 3.0 + openssl_root_dir: /usr/local + - ssl: openssl36 + openssl_root_dir: /usr/local + - ssl: # base openssl + openssl_root_dir: + name: FreeBSD with ${{ matrix.ssl || 'base openssl' }} + env: + SSL: ${{ matrix.ssl }} + OPENSSL_ROOT_DIR: ${{ matrix.openssl_root_dir }} + steps: + - uses: actions/checkout@v6 + with: + submodules: true + - uses: vmactions/freebsd-vm@v1 + with: + envs: 'OPENSSL_ROOT_DIR SSL' + prepare: | + pkg install -y $SSL pkgconf cmake git libsodium cpu_features + run: | + CMAKE_FLAGS="-DUSE_SYSTEM_CPU_FEATURES=1" CFLAGS="-I/usr/local/include/cpu_features" ./configure + make -j $(nproc || echo 4) -C build + ldd build/vpnserver + .ci/memory-leak-test.sh + .ci/vpntools-check.sh