Update GitHub Actions - autoclosed #126
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Bink usage test | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - '**.md' | |
| - 'LICENSE' | |
| pull_request: | |
| paths-ignore: | |
| - '**.md' | |
| - 'LICENSE' | |
| concurrency: | |
| group: container-image-test-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| BINK_RUNTIME_IMAGES: >- | |
| ghcr.io/bootc-dev/bink/cluster:latest | |
| ghcr.io/bootc-dev/bink/node:v1.35-fedora-44-disk | |
| ghcr.io/bootc-dev/bink/dns:latest | |
| jobs: | |
| test-container-image: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v7 | |
| - name: Set up KVM | |
| run: | | |
| sudo chmod 666 /dev/kvm | |
| ls -la /dev/kvm | |
| - name: Configure kernel for nested containers | |
| run: | | |
| sudo aa-teardown 2>/dev/null || true | |
| sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 | |
| sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 | |
| sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 | |
| - name: Install Podman | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y podman | |
| - name: Configure Podman | |
| run: | | |
| podman --version | |
| sudo mkdir -p /etc/containers | |
| echo '{"defaultAction":"SCMP_ACT_ALLOW"}' | sudo tee /etc/containers/seccomp.json | |
| printf '[containers]\napparmor_profile = "unconfined"\nseccomp_profile = "/etc/containers/seccomp.json"\n' | sudo tee /etc/containers/containers.conf | |
| grep -q '^root:' /etc/subuid || echo 'root:100000:65536' | sudo tee -a /etc/subuid | |
| grep -q '^root:' /etc/subgid || echo 'root:100000:65536' | sudo tee -a /etc/subgid | |
| sudo systemctl start podman.socket | |
| sudo podman info --format '{{.Store.GraphRoot}}' | |
| - name: Get runtime image digests | |
| id: digests | |
| run: | | |
| ALL_DIGESTS="" | |
| for img in $BINK_RUNTIME_IMAGES; do | |
| digest=$(skopeo inspect --no-creds "docker://${img}" --format '{{.Digest}}') | |
| echo "${img}: ${digest}" | |
| ALL_DIGESTS="${ALL_DIGESTS}${digest}" | |
| done | |
| echo "hash=$(echo -n "${ALL_DIGESTS}" | sha256sum | cut -d' ' -f1)" >> "$GITHUB_OUTPUT" | |
| - name: Restore cached images | |
| id: image-cache | |
| uses: actions/cache/restore@v6 | |
| with: | |
| path: /tmp/podman-image-cache | |
| key: podman-images-v2-container-test-${{ steps.digests.outputs.hash }} | |
| - name: Load cached images | |
| if: steps.image-cache.outputs.cache-hit == 'true' | |
| run: | | |
| for f in /tmp/podman-image-cache/*.tar; do | |
| sudo podman load -i "$f" | |
| done | |
| sudo podman images --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}" | |
| - name: Pre-pull runtime images | |
| if: steps.image-cache.outputs.cache-hit != 'true' | |
| run: | | |
| mkdir -p /tmp/podman-image-cache | |
| for img in $BINK_RUNTIME_IMAGES; do | |
| sudo podman pull "$img" | |
| name=$(echo "$img" | sed 's|[/:]|_|g') | |
| sudo podman save -o "/tmp/podman-image-cache/${name}.tar" "$img" | |
| done | |
| sudo chown -R $(id -u):$(id -g) /tmp/podman-image-cache | |
| - name: Save image cache | |
| if: steps.image-cache.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v6 | |
| with: | |
| path: /tmp/podman-image-cache | |
| key: podman-images-v2-container-test-${{ steps.digests.outputs.hash }} | |
| - name: Build bink image | |
| run: sudo make build-bink-image | |
| - name: Test nested mode | |
| run: sudo -E hack/test-container-image.sh nested | |
| timeout-minutes: 40 | |
| env: | |
| IMAGE_CACHE_DIR: /tmp/podman-image-cache | |
| - name: Test socket mode | |
| run: sudo hack/test-container-image.sh socket | |
| timeout-minutes: 15 | |
| env: | |
| CONTAINER_HOST: unix:///run/podman/podman.sock |