Skip to content

Commit

Permalink
Use systemd-nspawn to test socket mount in container
Browse files Browse the repository at this point in the history
  • Loading branch information
morisja committed Oct 10, 2024
1 parent 0dde697 commit 1f15de6
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 162 deletions.
167 changes: 5 additions & 162 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,54 +31,6 @@ jobs:
- name: Build
run: cargo build --verbose

build-debian-12:
runs-on: ubuntu-latest
container: debian:12

steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get -y install build-essential dpkg-dev ca-certificates sudo curl
apt-get -y build-dep .
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Build
run: cargo build --verbose

build-debian-13:
runs-on: ubuntu-latest
container: debian:trixie

steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get -y install build-essential dpkg-dev ca-certificates sudo curl
apt-get -y build-dep .
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Build
run: cargo build --verbose

clippy:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- run: rustup component add clippy
- name: rust-clippy-check
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}


build-debian-package-11:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -109,139 +61,30 @@ jobs:
./*
!./clone/**
build-debian-package-12:
runs-on: ubuntu-latest
container: debian:12

steps:
- uses: actions/checkout@v4
with:
path: clone
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential dpkg-dev ca-certificates sudo curl
cd clone
apt-get build-dep -y .
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Build package
run: |
debian/rules vendor
dpkg-buildpackage --no-sign
working-directory: clone
- uses: actions/upload-artifact@v3
with:
name: deb-package-debian-12
path: |
./*
!./clone/**
build-debian-package-13:
runs-on: ubuntu-latest
container: debian:trixie

steps:
- uses: actions/checkout@v4
with:
path: clone
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential dpkg-dev ca-certificates sudo curl
cd clone
apt-get build-dep -y .
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Build package
run: |
debian/rules vendor
dpkg-buildpackage --no-sign
working-directory: clone
- uses: actions/upload-artifact@v3
with:
name: deb-package-debian-13
path: |
./*
!./clone/**
run-ci-ubuntu-latest:
runs-on: ubuntu-latest
needs: [build-debian-package-11, build-debian-package-12, build-debian-package-13]

steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
name: deb-package-debian-12
- name: CI
run: ci/test.sh
env:
HAVE_SYSTEMD: "1"

run-ci-debian-11:
runs-on: ubuntu-latest
container: debian:11
#container: debian:11
needs: [build-debian-package-11]

steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get -y install build-essential
sudo apt-get update
sudo apt-get -y install build-essential systemd-container debootstrap
- uses: actions/download-artifact@v3
with:
name: deb-package-debian-11
- name: CI
run: ci/test.sh
run: ci/test_nspawn.sh
env:
HAVE_SYSTEMD: "0"

run-ci-debian-12:
runs-on: ubuntu-latest
container: debian:12
needs: [build-debian-package-12]

steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get -y install build-essential
- uses: actions/download-artifact@v3
with:
name: deb-package-debian-12
- name: CI
run: ci/test.sh
env:
HAVE_SYSTEMD: "0"

run-ci-debian-13:
runs-on: ubuntu-latest
container: debian:trixie
needs: [build-debian-package-13]

steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get -y install build-essential
- uses: actions/download-artifact@v3
with:
name: deb-package-debian-13
- name: CI
run: ci/test.sh
env:
HAVE_SYSTEMD: "0"

create-release:
runs-on: ubuntu-latest
needs: [run-ci-ubuntu-latest, run-ci-debian-11, run-ci-debian-12, run-ci-debian-13]
needs: [run-ci-debian-11]
if: github.event.release

steps:
Expand Down
26 changes: 26 additions & 0 deletions ci/test_nspawn.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/bash
sudo debootstrap stable /stable-chroot http://deb.debian.org/debian/
sudo dpkg -i nsncd*.deb
sleep 1 # Give it a moment to start up

#docker pull debian:bullseye-slim

sudo useradd nsncdtest
#sudo -c "echo 'nsncdtest (machine1,,), (machine2,,), (machine3,,)' >> /etc/netgroup"
#sudo -c "echo -e 'nsncdtest\t65000/tcp' >> /etc/services"
#sudo -c "echo -e 'nsncdtest\t65000/udp' >> /etc/services"

sdns="sudo systemd-nspawn -q --bind-ro /var/run/nscd/socket:/var/run/nscd/socket -D /stable-chroot"

rc=0
${sdns} getent passwd nsncdtest || rc=1
${sdns} getent netgroup nsncdtest || rc=1
${sdns} getent netgroup nsncdtest || rc=1
${sdns} getent services nsncdtest || rc=1
${sdns} getent services nsncdtest/tcp || rc=1
${sdns} getent services nsncdtest/udp || rc=1
${sdns} getent services 65000/tcp || rc=1
${sdns} getent services 65000/udp || rc=1

#docker run -it -v /run/nscd/socket:/run/nscd/socket debian:bullseye-slim 'getent passwd nsncdtest'
exit ${rc}

0 comments on commit 1f15de6

Please sign in to comment.