refactor(test): refine function create_container (#2973) #2308
This file contains 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: 🧪 e2e test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
youki-build: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 15 | |
strategy: | |
matrix: | |
arch: [ "x86_64", "aarch64" ] | |
libc: [ "gnu", "musl" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/[email protected] | |
env: | |
RUST_CACHE_KEY_OS: rust-cache-${{ matrix.arch }}-${{ matrix.libc }} | |
- name: Install just | |
uses: taiki-e/install-action@just | |
- name: Install cross-rs | |
run: cargo install cross --git https://github.com/cross-rs/cross | |
- name: Setup target | |
run: | | |
echo "CARGO=cross" >> ${GITHUB_ENV} | |
echo "TARGET=${{ matrix.arch }}-unknown-linux-${{ matrix.libc }}" >> ${GITHUB_ENV} | |
- name: Build youki | |
run: just youki-release | |
- name: Upload youki binary | |
if: ${{ matrix.arch == 'x86_64' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: youki-${{ matrix.arch }}-${{ matrix.libc }} | |
path: youki | |
containerd-integration-tests: | |
runs-on: ubuntu-22.04 | |
needs: [youki-build] | |
timeout-minutes: 40 | |
strategy: | |
matrix: | |
arch: [ "x86_64" ] | |
libc: [ "gnu", "musl" ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: containerd/containerd | |
ref: v1.7.11 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '1.20.12' | |
cache: true | |
- run: sudo apt-get -y update | |
- run: sudo apt-get install -y pkg-config libsystemd-dev libelf-dev libseccomp-dev btrfs-progs libbtrfs-dev | |
- name: Build containerd | |
run: | | |
make build | |
make binaries | |
sudo make install | |
./script/setup/install-cni | |
./script/setup/install-critools | |
- name: Download youki binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: youki-${{ matrix.arch }}-${{ matrix.libc }} | |
- name: Replace runc to youki | |
run: | | |
sudo rm -f /usr/bin/runc /usr/local/bin/runc /usr/sbin/runc | |
sudo chmod 755 youki | |
sudo cp youki /usr/bin/runc | |
runc --version | |
- name: Integration Test | |
run: sudo make RUNC_FLAVOR=crun TEST_RUNTIME=io.containerd.runc.v2 TESTFLAGS="-timeout 40m" integration | |
k8s-tests: | |
runs-on: ubuntu-22.04 | |
needs: [youki-build] | |
timeout-minutes: 40 | |
strategy: | |
matrix: | |
arch: [ "x86_64" ] | |
libc: [ "gnu", "musl" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download youki binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: youki-${{ matrix.arch }}-${{ matrix.libc }} | |
- name: Add the permission to run | |
run: chmod +x ./youki | |
- name: Install just | |
uses: taiki-e/install-action@just | |
- name: test/k8s/deploy | |
run: just test-kind | |
oci-validation-go: | |
runs-on: ubuntu-22.04 | |
needs: [youki-build] | |
timeout-minutes: 15 | |
strategy: | |
matrix: | |
arch: [ "x86_64" ] | |
libc: [ "gnu", "musl" ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Install just | |
uses: taiki-e/install-action@just | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '1.20' | |
cache: true | |
cache-dependency-path: tests/oci-runtime-tests/src/github.com/opencontainers/runtime-tools/go.sum | |
- name: Download youki binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: youki-${{ matrix.arch }}-${{ matrix.libc }} | |
- name: Add the permission to run | |
run: chmod +x ./youki | |
- name: Run integration tests | |
run: just test-oci | |
oci-validation-rust: | |
runs-on: ubuntu-22.04 | |
needs: [youki-build] | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
arch: [ "x86_64" ] | |
libc: [ "gnu", "musl" ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Install just | |
uses: taiki-e/install-action@just | |
- name: Install requirements | |
run: sudo env PATH=$PATH just ci-prepare | |
- name: Download youki binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: youki-${{ matrix.arch }}-${{ matrix.libc }} | |
- name: Add the permission to run | |
run: chmod +x ./youki | |
- name: Validate tests on youki | |
run: just test-contest | |
rootless-podman-test: | |
runs-on: ubuntu-22.04 | |
needs: [youki-build] | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
arch: [ "x86_64" ] | |
libc: [ "gnu", "musl" ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Install just | |
uses: taiki-e/install-action@just | |
- name: Install requirements | |
run: sudo env PATH=$PATH just ci-prepare | |
- name: Download youki binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: youki-${{ matrix.arch }}-${{ matrix.libc }} | |
- name: Add the permission to run | |
run: chmod +x ./youki | |
- name: Run tests | |
run: just test-rootless-podman | |
docker-in-docker: | |
runs-on: ${{ matrix.os }} | |
needs: [youki-build] | |
timeout-minutes: 5 | |
strategy: | |
matrix: | |
# ubuntu 20.04 has cgroups-v1 | |
# ubuntu 22.04 has cgroups-v2 | |
os: [ "ubuntu-22.04", "ubuntu-20.04" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install just | |
uses: taiki-e/install-action@just | |
- name: Download youki binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: youki-x86_64-musl | |
- name: Add the permission to run | |
run: chmod +x ./youki | |
- name: Run tests | |
run: just test-dind | |