diff --git a/.github/workflows/build-and-test-on-freebsd.yaml b/.github/workflows/build-and-test-on-freebsd.yaml new file mode 100644 index 000000000..e1a6a82b6 --- /dev/null +++ b/.github/workflows/build-and-test-on-freebsd.yaml @@ -0,0 +1,127 @@ +# +# Copyright 2023 Fred Dushin +# +# SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later +# + +name: build-and-test-on-freebsd + +on: + push: + paths-ignore: + - 'src/platforms/esp32/**' + - 'src/platforms/stm32/**' + - 'doc/**' + - 'LICENSES/**' + - '*.Md' + - '*.md' + pull_request: + paths-ignore: + - 'src/platforms/esp32/**' + - 'src/platforms/stm32/**' + - 'doc/**' + - 'LICENSES/**' + - '*.Md' + - '*.md' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref != 'refs/heads/master' && github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + build-and-test-on-freebsd: + runs-on: macos-12 + name: Build and test AtomVM on FreeBSD + env: + ATOMVM_EXAMPLE: "atomvm-example" + steps: + + - uses: actions/checkout@v3 + + - name: Build and Test on FreeBSD + id: build-and-test-on-freebsd + uses: vmactions/freebsd-vm@v0 + with: + envs: 'ATOMVM_EXAMPLE' + usesh: true + sync: rsync + copyback: false + + prepare: | + pkg install -y curl cmake gperf erlang elixir + + run: | + + echo "%%" + echo "%% System Info" + echo "%%" + echo "**freebsd-version:**" + freebsd-version + echo "**uname:**" + uname -a + echo "**C Compiler version:**" + clang --version + clang++ --version + echo "**CMake version:**" + cmake --version + echo "**hw.ncpu:**" + sysctl -n hw.ncpu + + echo "%%" + echo "%% Running CMake ..." + echo "%%" + mkdir build + cd build + cmake .. + + echo "%%" + echo "%% Building AtomVM ..." + echo "%%" + make -j `sysctl -n hw.ncpu` + + echo "%%" + echo "%% Running test-erlang ..." + echo "%%" + ./tests/test-erlang + + echo "%%" + echo "%% Running test-enif ..." + echo "%%" + ./tests/test-enif + + echo "%%" + echo "%% Running test-mailbox ..." + echo "%%" + ./tests/test-mailbox + + echo "%%" + echo "%% Running test-structs ..." + echo "%%" + ./tests/test-structs + + echo "%%" + echo "%% Running estdlib tests ..." + echo "%%" + ./src/AtomVM tests/libs/estdlib/test_estdlib.avm + + echo "%%" + echo "%% Running eavmlib tests ..." + echo "%%" + ./src/AtomVM tests/libs/eavmlib/test_eavmlib.avm + + echo "%%" + echo "%% Running alisp tests ..." + echo "%%" + ./src/AtomVM tests/libs/alisp/test_alisp.avm + + echo "%%" + echo "%% Running install ..." + echo "%%" + make install + atomvm examples/erlang/hello_world.avm + atomvm -v + atomvm -h + + echo "%%" + echo "%% Done!" + echo "%%"