mirror of
https://git.sr.ht/~cismonx/bookmarkfs
synced 2025-06-07 19:58:50 +00:00
ci: add build.sr.ht configuration
Automate the building and testing process of BookmarkFS using the builds.sr.ht service, to see whether it still works on: - Debian, Arch Linux * Typical GNU/Linux distros, either stable or cutting-edge. - Alpine Linux * Minimal non-GNU setup, notably BusyBox, TinyCC, musl and pdpmake. - FreeBSD * FreeBSD kernel and userland, including Clang and others.
This commit is contained in:
parent
b7b8cc88d2
commit
1e1460af0d
4 changed files with 176 additions and 0 deletions
46
.builds/alpine.yml
Normal file
46
.builds/alpine.yml
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2025 CismonX <admin@cismon.net>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty, provided the copyright notice and
|
||||||
|
# this notice are preserved. This file is offered as-is, without any warranty.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Switch to alpine/latest once tcc leaves aports/testing
|
||||||
|
image: alpine/edge
|
||||||
|
packages: [
|
||||||
|
# build
|
||||||
|
autoconf, automake, libtool, autoconf-archive, pkgconf, pdpmake, tcc,
|
||||||
|
texinfo, musl-dev, tcc-dev, tcc-libs-static,
|
||||||
|
# lib
|
||||||
|
fuse3-dev, libseccomp-dev, sqlite-dev, jansson-dev, nettle-dev,
|
||||||
|
readline-dev, tcl-dev, uriparser-dev, xxhash-dev,
|
||||||
|
# for fusermount3(1)
|
||||||
|
fuse3,
|
||||||
|
]
|
||||||
|
sources:
|
||||||
|
- https://git.sr.ht/~cismonx/bookmarkfs
|
||||||
|
environment:
|
||||||
|
BUILD_CFLAGS: -g -b -Wall -Wunsupported -Werror=unsupported
|
||||||
|
# While musl does support _GNU_SOURCE,
|
||||||
|
# here is a good place to see how well BookmarkFS works with a non-GNU libc.
|
||||||
|
BUILD_CPPFLAGS: -D_DEFAULT_SOURCE
|
||||||
|
tasks:
|
||||||
|
# Use srcdir as builddir, since pdpmake does not support VPATH.
|
||||||
|
- setup: |
|
||||||
|
cd bookmarkfs
|
||||||
|
autoreconf -i
|
||||||
|
./configure \
|
||||||
|
--enable-bookmarkfs-debug --enable-xxhash-inline \
|
||||||
|
--enable-bookmarkfs-util --enable-bookmarkfs-mount \
|
||||||
|
--enable-bookmarkfs-fsck --enable-bookmarkfs-mkfs \
|
||||||
|
--enable-bookmarkctl --enable-fsck-handler-tcl \
|
||||||
|
--enable-backend-firefox --enable-backend-chromium \
|
||||||
|
CC=tcc CFLAGS="$BUILD_CFLAGS" CPPFLAGS="$BUILD_CPPFLAGS"
|
||||||
|
- build: |
|
||||||
|
cd bookmarkfs
|
||||||
|
pdpmake
|
||||||
|
pdpmake info
|
||||||
|
- test: |
|
||||||
|
cd bookmarkfs
|
||||||
|
pdpmake check
|
40
.builds/archlinux.yml
Normal file
40
.builds/archlinux.yml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2025 CismonX <admin@cismon.net>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty, provided the copyright notice and
|
||||||
|
# this notice are preserved. This file is offered as-is, without any warranty.
|
||||||
|
#
|
||||||
|
|
||||||
|
image: archlinux
|
||||||
|
packages: [
|
||||||
|
# build
|
||||||
|
autoconf, automake, libtool, autoconf-archive, pkgconf, make, gcc, texinfo,
|
||||||
|
# lib
|
||||||
|
fuse3, libseccomp, sqlite, jansson, nettle, readline, tcl, uriparser, xxhash,
|
||||||
|
]
|
||||||
|
sources:
|
||||||
|
- https://git.sr.ht/~cismonx/bookmarkfs
|
||||||
|
environment:
|
||||||
|
BUILD_CFLAGS: >-
|
||||||
|
-std=c99 -O0 -g -Wall -Wextra -Wpedantic -Wshadow
|
||||||
|
-fsanitize=address,undefined -fno-sanitize-recover
|
||||||
|
BUILD_CPPFLAGS: -D_GNU_SOURCE
|
||||||
|
tasks:
|
||||||
|
- setup: |
|
||||||
|
mkdir bookmarkfs/build && cd bookmarkfs/build
|
||||||
|
autoreconf -i ..
|
||||||
|
../configure \
|
||||||
|
--enable-bookmarkfs-debug --enable-xxhash-inline \
|
||||||
|
--enable-bookmarkfs-util --enable-bookmarkfs-mount \
|
||||||
|
--enable-bookmarkfs-fsck --enable-bookmarkfs-mkfs \
|
||||||
|
--enable-bookmarkctl --enable-fsck-handler-tcl \
|
||||||
|
--enable-backend-firefox --enable-backend-chromium \
|
||||||
|
CFLAGS="$BUILD_CFLAGS" CPPFLAGS="$BUILD_CPPFLAGS"
|
||||||
|
- build: |
|
||||||
|
cd bookmarkfs/build
|
||||||
|
make
|
||||||
|
make info
|
||||||
|
- test: |
|
||||||
|
cd bookmarkfs/build
|
||||||
|
make check
|
43
.builds/debian.yml
Normal file
43
.builds/debian.yml
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2025 CismonX <admin@cismon.net>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty, provided the copyright notice and
|
||||||
|
# this notice are preserved. This file is offered as-is, without any warranty.
|
||||||
|
#
|
||||||
|
|
||||||
|
image: debian/stable
|
||||||
|
packages: [
|
||||||
|
# build
|
||||||
|
autoconf, automake, libtool, autoconf-archive, pkgconf, make, gcc, texinfo,
|
||||||
|
# lib
|
||||||
|
libfuse3-dev, libseccomp-dev, libsqlite3-dev, libjansson-dev, nettle-dev,
|
||||||
|
libreadline-dev, tcl-dev, liburiparser-dev, libxxhash-dev,
|
||||||
|
# for fusermount3(1)
|
||||||
|
fuse3,
|
||||||
|
]
|
||||||
|
sources:
|
||||||
|
- https://git.sr.ht/~cismonx/bookmarkfs
|
||||||
|
environment:
|
||||||
|
BUILD_CFLAGS: >-
|
||||||
|
-std=c99 -O0 -g -Wall -Wextra -Wpedantic -Wshadow
|
||||||
|
-fsanitize=address,undefined -fno-sanitize-recover
|
||||||
|
BUILD_CPPFLAGS: -D_GNU_SOURCE
|
||||||
|
tasks:
|
||||||
|
- setup: |
|
||||||
|
mkdir bookmarkfs/build && cd bookmarkfs/build
|
||||||
|
autoreconf -i ..
|
||||||
|
../configure \
|
||||||
|
--enable-bookmarkfs-debug --enable-xxhash-inline \
|
||||||
|
--enable-bookmarkfs-util --enable-bookmarkfs-mount \
|
||||||
|
--enable-bookmarkfs-fsck --enable-bookmarkfs-mkfs \
|
||||||
|
--enable-bookmarkctl --enable-fsck-handler-tcl \
|
||||||
|
--enable-backend-firefox --enable-backend-chromium \
|
||||||
|
CFLAGS="$BUILD_CFLAGS" CPPFLAGS="$BUILD_CPPFLAGS"
|
||||||
|
- build: |
|
||||||
|
cd bookmarkfs/build
|
||||||
|
make
|
||||||
|
make info
|
||||||
|
- test: |
|
||||||
|
cd bookmarkfs/build
|
||||||
|
make check
|
47
.builds/freebsd.yml
Normal file
47
.builds/freebsd.yml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2025 CismonX <admin@cismon.net>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty, provided the copyright notice and
|
||||||
|
# this notice are preserved. This file is offered as-is, without any warranty.
|
||||||
|
#
|
||||||
|
|
||||||
|
image: freebsd/latest
|
||||||
|
packages: [
|
||||||
|
# build
|
||||||
|
autoconf, automake, libtool, autoconf-archive, pkgconf, texinfo,
|
||||||
|
# lib
|
||||||
|
fusefs-libs3, sqlite3, jansson, nettle, readline, tcl86, uriparser, xxhash,
|
||||||
|
]
|
||||||
|
sources:
|
||||||
|
- https://git.sr.ht/~cismonx/bookmarkfs
|
||||||
|
environment:
|
||||||
|
BUILD_CFLAGS: >-
|
||||||
|
-std=c99 -O0 -g -Wall -Wextra -Wpedantic -Wshadow
|
||||||
|
-fsanitize=address,undefined -fno-sanitize-recover
|
||||||
|
BUILD_CPPFLAGS: ""
|
||||||
|
tasks:
|
||||||
|
# Unlike Debian, FreeBSD Ports does not have a "dependency package" concept,
|
||||||
|
# and we have to manually create a symlink for Tcl's pkg-config file.
|
||||||
|
- init: |
|
||||||
|
cd /usr/local/libdata/pkgconfig
|
||||||
|
sudo ln -s tcl86.pc tcl.pc
|
||||||
|
- setup: |
|
||||||
|
mkdir bookmarkfs/build && cd bookmarkfs/build
|
||||||
|
autoreconf -i ..
|
||||||
|
../configure \
|
||||||
|
--enable-bookmarkfs-debug --enable-xxhash-inline \
|
||||||
|
--enable-bookmarkfs-util --enable-bookmarkfs-mount \
|
||||||
|
--enable-bookmarkfs-fsck --enable-bookmarkfs-mkfs \
|
||||||
|
--enable-bookmarkctl --enable-fsck-handler-tcl \
|
||||||
|
--enable-backend-firefox --enable-backend-chromium \
|
||||||
|
CFLAGS="$BUILD_CFLAGS" CPPFLAGS="$BUILD_CPPFLAGS"
|
||||||
|
- build: |
|
||||||
|
cd bookmarkfs/build
|
||||||
|
make
|
||||||
|
make info
|
||||||
|
- test: |
|
||||||
|
sudo kldload fusefs
|
||||||
|
sudo sysctl vfs.usermount=1
|
||||||
|
cd bookmarkfs/build
|
||||||
|
make check
|
Loading…
Add table
Reference in a new issue