16 Commits

Author SHA1 Message Date
4d4d940cd7 use fixed plugin-git image 2026-01-08 14:23:47 +01:00
8f55d4861b use published git plugin image 2026-01-08 13:27:14 +01:00
dc2d310c45 use local git plugin image 2026-01-08 12:33:50 +01:00
6669932b06 run w/ linux compat 2026-01-08 10:00:25 +01:00
846c0104cc try file uri 2026-01-08 09:48:26 +01:00
1bd09b60a3 try local path 2026-01-08 09:47:51 +01:00
7d0e82773c try other git plugin image 2026-01-08 09:43:25 +01:00
41b8647c10 use ghcr.io/freebsd/freebsd-runtime:14.3 2026-01-07 21:23:12 +01:00
12f5afdf0d use runtime 2026-01-07 20:45:22 +01:00
3d646a88d6 revert 2026-01-07 12:19:29 +01:00
6da97f3d0f try ghcr 2026-01-07 12:14:35 +01:00
696f0d7514 try native agent 2026-01-07 12:10:15 +01:00
f4bd950ec7 fix typo 2025-12-19 13:52:03 +01:00
03ea2de4c4 fix typos 2025-12-19 13:46:37 +01:00
be4f01877d fix ci doc 2025-12-19 13:45:29 +01:00
T. von Dein
1e115c49f6 move ci pipeline to woodpecker using hetzner freebsd vm with woodpecker-agent (#37) 2025-12-19 13:42:24 +01:00
2 changed files with 32 additions and 28 deletions

View File

@@ -1,6 +1,6 @@
## Running CI Tests with Woodpecker-CI on FreeBSD
By default the woodpecker intance on Codeberg doesn't support
By default the woodpecker instance on Codeberg doesn't support
FreeBSD. Running FreeBSD inside a qemu VM in a linux docker image
didn't work. Also, this particular tool needs to run outside a jail,
since it is a jail management tool.
@@ -8,7 +8,7 @@ since it is a jail management tool.
So, this is my setup:
I deployed a freebsd VM on Hetzner Cloud: `ci-agent.daemon.de`. It
runs the `woodpecker-agent` build for freebsd. The agent runs as rool
runs the `woodpecker-agent` built for freebsd. The agent runs as root
directly on the host. This is a security risk and the reason why we
use a VM.
@@ -43,7 +43,7 @@ Execute:
GOOS=freebsd go build
```
Copy the newly built binaries `dist/woodpecker-agent` into the VM to
Copy the newly built binaries into the VM to
`/usr/local/bin`.
```default

View File

@@ -11,43 +11,47 @@ matrix:
labels:
platform: freebsd/amd64
clone:
git:
image: codeberg.org/scip/jaildk:plugin-git-2
steps:
test:
image: bash
image: ghcr.io/freebsd/freebsd-runtime:14.3
when:
event: [push]
commands:
- freebsd-version
- uname -a
- sysctl hw.model
- sysctl hw.ncpu
- sysctl hw.physmem
- sysctl hw.usermem
# - sysctl hw.model
# - sysctl hw.ncpu
# - sysctl hw.physmem
# - sysctl hw.usermem
# clean up earlier runs, if any
- if jls | grep -q test; then jail -r test; fi
- mount | cut -d' ' -f3 | grep /jail | sed '1!G;h;$!d' | while read D; do umount $D; done
- chflags -R noschg /jail
- rm -rf /jail
# # clean up earlier runs, if any
# - if jls | grep -q test; then jail -r test; fi
# - mount | cut -d' ' -f3 | grep /jail | sed '1!G;h;$!d' | while read D; do umount $D; done
# - chflags -R noschg /jail
# - rm -rf /jail
- ifconfig vtnet0 172.16.0.1/32 alias
- ifconfig vtnet0
# - ifconfig vtnet0 172.16.0.1/32 alias
# - ifconfig vtnet0
- sysrc jail_enable="YES"
- cp .woodpecker/assets/jail.conf /etc/
# - sysrc jail_enable="YES"
# - cp .woodpecker/assets/jail.conf /etc/
- cp src/jaildk.sh jaildk
- sh jaildk setup /jail
# - cp src/jaildk.sh jaildk
# - sh jaildk setup /jail
- if ! test -e /jail/base/${release}-base.txz; then fetch https://download.freebsd.org/ftp/releases/amd64/amd64/${releaselink}/base.txz -o /jail/base/${release}-base.txz; mkdir -p /jail/base/${release}; tar -xf /jail/base/${release}-base.txz -C /jail/base/${release} --unlink; fi
# - if ! test -e /jail/base/${release}-base.txz; then fetch https://download.freebsd.org/ftp/releases/amd64/amd64/${releaselink}/base.txz -o /jail/base/${release}-base.txz; mkdir -p /jail/base/${release}; tar -xf /jail/base/${release}-base.txz -C /jail/base/${release} --unlink; fi
- /jail/bin/jaildk create test
- ls -l /jail/etc/test
- /jail/bin/jaildk build test -m start
- df -h /jail/build/test/etc
# - /jail/bin/jaildk create test
# - ls -l /jail/etc/test
# - /jail/bin/jaildk build test -m start
# - df -h /jail/build/test/etc
- echo 'sshd_enable="Yes"' > /jail/build/test/usr/local/etc/rc.conf
- chroot /jail/build/test /etc/rc.d/sshd keygen
# - echo 'sshd_enable="Yes"' > /jail/build/test/usr/local/etc/rc.conf
# - chroot /jail/build/test /etc/rc.d/sshd keygen
- /jail/bin/jaildk start test
- /jail/bin/jaildk status | grep -E "test|Jail"
# - /jail/bin/jaildk start test
# - /jail/bin/jaildk status | grep -E "test|Jail"