diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 06f09607..93fffa80 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -22,4 +22,4 @@ jobs: integration-tests: name: Integration tests - uses: canonical/chisel-releases/.github/workflows/spread.yaml@main + uses: cjdcordeiro/chisel-releases/.github/workflows/spread.yaml@main diff --git a/slices/base-passwd.yaml b/slices/base-passwd.yaml index efee9adc..3e839eb9 100644 --- a/slices/base-passwd.yaml +++ b/slices/base-passwd.yaml @@ -13,6 +13,7 @@ slices: mutate: | gr = content.read("/usr/share/base-passwd/group.master") content.write("/etc/group", gr) + pw = content.read("/usr/share/base-passwd/passwd.master") content.write("/etc/passwd", pw) diff --git a/slices/ca-certificates.yaml b/slices/ca-certificates.yaml index 9d727029..513449d4 100644 --- a/slices/ca-certificates.yaml +++ b/slices/ca-certificates.yaml @@ -4,7 +4,7 @@ essential: - ca-certificates_copyright slices: - # This slice only contains the certificates bundle at /etc/ssl/certs/ca-certificates.crt. + # FOOThis slice only contains the certificates bundle at /etc/ssl/certs/ca-certificates.crt. # To keep the individual certificates at /usr/share/ca-certificates/mozilla/ and the # configuration file at /etc/ca-certificates.conf, please use the "data-with-certs" slice. # Please note that the mutation script (partially) mimics the deb's maintainer diff --git a/spread.yaml b/spread.yaml index d57a5b45..d929a2af 100644 --- a/spread.yaml +++ b/spread.yaml @@ -11,6 +11,37 @@ exclude: - .github backends: + # We can switch back to using the official Spread LXD backend after + # https://github.com/snapcore/spread/pulls?q=is%3Apr+is%3Aopen+LXD+updated%3A%3C%3D2024-02-23+ + lxd: + type: adhoc + allocate: | + set -x + release=$(echo $SPREAD_SYSTEM | awk -F '-' '{print $2}') + + # Ideally, we would add the ubuntu-minimal remote + # e.g. https://cloud-images.ubuntu.com/minimal/releases/jammy/ + # but that would effectively change the host's LXC configurations. + + echo "Allocating $SPREAD_SYSTEM..." + lxc launch --ephemeral ubuntu:$release $SPREAD_SYSTEM + until lxc exec $SPREAD_SYSTEM -- pgrep sshd &>/dev/null + do + sleep 5 + done + lxc exec $SPREAD_SYSTEM -- sed -i 's/^\s*#\?\s*\(PermitRootLogin\|PasswordAuthentication\)\>.*/\1 yes/' /etc/ssh/sshd_config + lxc exec $SPREAD_SYSTEM -- bash -c "sed -i 's/^\s*\(PermitRootLogin\|PasswordAuthentication\)\>.*/# COMMENTED OUT BY SPREAD: \0/' /etc/ssh/sshd_config.d/* || true" + lxc exec $SPREAD_SYSTEM -- bash -c "test -d /etc/ssh/sshd_config.d && echo -e 'PermitRootLogin=yes\nPasswordAuthentication=yes' > /etc/ssh/sshd_config.d/00-spread.conf" + lxc exec $SPREAD_SYSTEM -- bash -c "echo root:${SPREAD_SYSTEM_PASSWORD} | chpasswd" + lxc exec $SPREAD_SYSTEM -- killall -HUP sshd + ADDRESS `lxc list --format=json $SPREAD_SYSTEM | jq -r '.[0].state.network.eth0.addresses[] | select(.family=="inet") | .address'` + discard: lxc stop $SPREAD_SYSTEM || true + systems: + - ubuntu-jammy: + password: ubuntu + + # The Docker backend is recommended for comprehensive multi-arch tests, but + # not ideal for tests that need to perform privileged operations (like "mount"). docker: type: adhoc allocate: | @@ -48,9 +79,8 @@ backends: password: ubuntu - ubuntu-22.04-s390x: password: ubuntu - # Re-enable risvc64 once we have re-enabled this arch for the Ubuntu container - # - ubuntu-22.04-riscv64: - # password: ubuntu + - ubuntu-22.04-riscv64: + password: ubuntu prepare: | # Deb arch to GOARCH @@ -66,8 +96,7 @@ prepare: | tar -xf $chisel_tar -C /usr/local/bin -prepare-each: - chisel version +prepare-each: chisel version suites: tests/spread/integration/: