apk add \
git pkgconf gcc linux-headers shadow sudo libgcrypt-dev gzip \
- openssl-dev zlib-dev lzo-dev ncurses-dev readline-dev musl-dev lz4-dev vde2-dev cmocka-dev
+ openssl-dev zlib-dev lzo-dev ncurses-dev readline-dev musl-dev lz4-dev vde2-dev cmocka-dev \
+ "$@"
if [ -z "$SKIP_MESON" ]; then
apk add meson
# samurai (a C reimplementation of the ninja build tool),
# and then use both to build tinc.
-set -euo pipefail
-
-git_samurai=https://github.com/michaelforney/samurai
-git_muon=https://git.sr.ht/~lattis/muon
-prefix=/opt/tinc_muon
-
-header() {
- echo >&2 '################################################################################'
- echo >&2 "# $*"
- echo >&2 '################################################################################'
-}
-
-header 'Try to make sure Python is missing'
-python --version && exit 1
-python3 --version && exit 1
-
-header 'Fetch and build samurai'
-
-git clone --depth=1 $git_samurai ~/samurai
-pushd ~/samurai
-make -j"$(nproc)"
-make install
-popd
-
-header 'Fetch and build muon'
-
-git clone --depth=1 $git_muon ~/muon
-pushd ~/muon
-./bootstrap.sh build
-./build/muon-bootstrap setup build
-./build/muon-bootstrap -C build samu
-./build/muon -C build install
-popd
-
-header 'Setup build directory'
-muon setup -D prefix=$prefix -D systemd=disabled build_muon
-samu -C build_muon
-
-header 'Install tinc'
-muon -C build_muon install
-
-header 'Run smoke tests'
-$prefix/sbin/tinc --version
-$prefix/sbin/tincd --version
-$prefix/sbin/tinc -c /tmp/muon_node <<EOF
-init muon
-set DeviceType dummy
-set Address localhost
-set Port 0
-start
-EOF
+set -eux
+
+dir="${1:-build_muon}"
+shift
+
+if muon version >/dev/null; then
+ MUON=muon
+elif muon-meson version >/dev/null; then
+ MUON=muon-meson
+else
+ echo 'Muon not found' >&2
+ exit 1
+fi
+
+$MUON setup "$dir"
+$MUON -C "$dir" test basic.py
runs-on: ubuntu-24.04
timeout-minutes: 20
container:
- image: debian:stable-slim
+ image: alpine:latest
env:
CI: 1
uses: actions/checkout@v6
- name: Install dependencies
- run: SKIP_MESON=1 .ci/deps.sh libpkgconf-dev
+ run: SKIP_MESON=1 .ci/deps.sh muon
- name: Compatibility with muon
run: .ci/muon/run.sh