-
Notifications
You must be signed in to change notification settings - Fork 226
CI networking cleanup #2385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
CI networking cleanup #2385
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -154,7 +154,7 @@ jobs: | |
| - name: Fetch external dependencies (with retry) | ||
| run: just build-fetch | ||
|
|
||
| - name: Integration tests | ||
| - name: Build images and test binaries | ||
| run: | | ||
| set -xeu | ||
| # Build images as regular user, then copy to root's podman storage | ||
|
|
@@ -168,13 +168,19 @@ jobs: | |
|
|
||
| # Build test binaries before any sudo commands to avoid cargo permission issues | ||
| cargo build --release -p tests-integration | ||
| cargo build --release -p system-reinstall-bootc | ||
|
|
||
| sudo podman build -t localhost/bootc-fsverity -f ci/Containerfile.install-fsverity | ||
|
|
||
| df -h / | ||
| sudo install -m 0755 target/release/tests-integration /usr/bin/bootc-integration-tests | ||
| sudo install -m 0755 target/release/system-reinstall-bootc /usr/bin/system-reinstall-bootc | ||
| sudo rm target -rf | ||
| df -h / | ||
|
|
||
| - name: Integration tests | ||
| run: | | ||
| set -xeu | ||
| # The ostree-container tests | ||
| sudo podman run --privileged --pid=host -v /:/run/host -v $(pwd):/src:ro -v /var/tmp:/var/tmp \ | ||
| --tmpfs /var/lib/containers \ | ||
|
|
@@ -187,14 +193,10 @@ jobs: | |
| # inspect system state after the install tests. | ||
| sudo lsblk | ||
| sudo mount | ||
|
|
||
| # system-reinstall-bootc tests | ||
| cargo build --release -p system-reinstall-bootc | ||
|
|
||
| # not sure why this is missing in the ubuntu image but just creating this directory allows the tests to pass | ||
| sudo mkdir -p /run/sshd | ||
|
|
||
| sudo install -m 0755 target/release/system-reinstall-bootc /usr/bin/system-reinstall-bootc | ||
| # These tests may mutate the system live so we can't run in parallel | ||
| sudo bootc-integration-tests system-reinstall localhost/bootc --test-threads=1 | ||
|
|
||
|
|
@@ -499,6 +501,9 @@ jobs: | |
| name: packages-${{ matrix.test_os }} | ||
| path: target/packages/ | ||
|
|
||
| - name: Fetch external dependencies (with retry) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we can factor this out as a prep PR? |
||
| run: BOOTC_SKIP_PACKAGE=1 just build-fetch | ||
|
|
||
| - name: Build container with baseconfig | ||
| run: BOOTC_SKIP_PACKAGE=1 just build | ||
|
|
||
|
|
@@ -602,7 +607,15 @@ jobs: | |
| name: packages-centos-10 | ||
| path: target/packages/ | ||
|
|
||
| - name: Build and run container export test | ||
| - name: Fetch external dependencies (with retry) | ||
| run: BOOTC_SKIP_PACKAGE=1 just build-fetch | ||
|
|
||
| - name: Build container and fetch Anaconda ISO | ||
| run: | | ||
| BOOTC_SKIP_PACKAGE=1 just build | ||
| BOOTC_SKIP_PACKAGE=1 just fetch-anaconda-iso | ||
|
|
||
| - name: Run container export test | ||
| run: | | ||
| BOOTC_SKIP_PACKAGE=1 just test-container-export | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| # Pre-built derived image used by test-29 (soft-reboot-selinux-policy). | ||
| # | ||
| # Building this in the CI build phase (network-allowed) avoids a live dnf | ||
| # install inside the test VM, which would be a network access mid-test. | ||
| # | ||
| # What this does: | ||
| # 1. Installs SELinux policy build tools into localhost/bootc | ||
| # 2. Compiles and installs a minimal custom policy module, which changes | ||
| # the compiled policy checksum relative to the base image | ||
| # 3. Cleans up build artifacts so the image passes standard lint checks | ||
| # | ||
| # The resulting image is exposed to the test VM via --bind-storage-ro and | ||
| # pulled into bootc storage before the switch/soft-reboot attempt. | ||
| FROM localhost/bootc | ||
|
|
||
| # Install tools needed to build and install SELinux policy modules. | ||
| # The packages are available from the base image's own repos (no extra | ||
| # repo file needed: localhost/bootc is derived from a centos/fedora/rhel | ||
| # base that ships these in standard repositories). | ||
| RUN dnf install -y selinux-policy-devel checkpolicy policycoreutils \ | ||
| && dnf clean all \ | ||
| && rm -rf /var/log/dnf* /var/log/hawkey.log /var/log/rhsm \ | ||
| /var/cache/dnf /var/lib/dnf /var/lib/rhsm | ||
|
|
||
| # Create a minimal SELinux policy module and install it. | ||
| # Installing a module changes the compiled policy checksum, which is exactly | ||
| # what test-29 needs to verify that soft-reboot is blocked when policies differ. | ||
| RUN <<EORUN | ||
| set -eux | ||
| mkdir -p /tmp/bootc-test-policy | ||
| cd /tmp/bootc-test-policy | ||
| cat > bootc_test_policy.te <<'EOF' | ||
| module bootc_test_policy 1.0; | ||
| require { | ||
| type unconfined_t; | ||
| class file { read write }; | ||
| } | ||
| type bootc_test_t; | ||
| EOF | ||
| checkmodule -M -m -o bootc_test_policy.mod bootc_test_policy.te | ||
| semodule_package -o bootc_test_policy.pp -m bootc_test_policy.mod | ||
| semodule -i bootc_test_policy.pp | ||
| rm -rf /tmp/bootc-test-policy | ||
| rm -rf /var/lib/sepolgen /var/cache/ldconfig | ||
| EORUN |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,2 @@ | ||
| [Image] | ||
| Image=registry.access.redhat.com/ubi9/podman:latest | ||
| Image=docker.io/library/alpine:latest | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. But this isn't podman anymore... |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -13,3 +13,5 @@ dosfstools | |
| e2fsprogs | ||
| # Required by bib-build test | ||
| qemu-img | ||
| # Required by 030-test-composefs.nu (pre-fetches busybox OCI image during build) | ||
| skopeo | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can easily move this to a prep PR too |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This part isn't totally clear to me why we're doing this but probably makes sense?
I wonder if this should be part of a
justverb too