diff --git a/.github/scripts/dependency.sh b/.github/scripts/dependency.sh new file mode 100755 index 000000000..e57330fcb --- /dev/null +++ b/.github/scripts/dependency.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +sudo apt-get -y update +sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev diff --git a/.github/workflows/benchmark_execution_time.yml b/.github/workflows/benchmark_execution_time.yml index a1e503bdf..5d319b5b8 100644 --- a/.github/workflows/benchmark_execution_time.yml +++ b/.github/workflows/benchmark_execution_time.yml @@ -14,10 +14,8 @@ jobs: - name: Checkout to PR branch uses: actions/checkout@v3 - - name: Setup Linux env - run: | - sudo apt -y update - sudo apt install libsystemd-dev librust-libdbus-sys-dev libseccomp-dev + - name: Install requirements + run: ./.github/scripts/dependency.sh - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 @@ -42,10 +40,8 @@ jobs: with: ref: main - - name: Setup Linux env - run: | - sudo apt -y update - sudo apt install libsystemd-dev librust-libdbus-sys-dev libseccomp-dev + - name: Install requirements + run: ./.github/scripts/dependency.sh - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 diff --git a/.github/workflows/containerd_integration_tests.yaml b/.github/workflows/containerd_integration_tests.yaml index eafcc165c..2cfa86981 100644 --- a/.github/workflows/containerd_integration_tests.yaml +++ b/.github/workflows/containerd_integration_tests.yaml @@ -14,8 +14,8 @@ jobs: - uses: actions/checkout@v3 - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 - - run: sudo apt-get -y update - - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev + - name: Install requirements + run: ./.github/scripts/dependency.sh - name: Build youki run: make youki-release - name: Upload youki binary @@ -36,6 +36,7 @@ jobs: - uses: actions/setup-go@v3 with: go-version: '1.18.3' + cache: true - run: sudo apt-get -y update - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev btrfs-progs libbtrfs-dev - name: Build containerd diff --git a/.github/workflows/integration_tests_validation.yaml b/.github/workflows/integration_tests_validation.yaml index 70ac48a1e..455eba2a7 100644 --- a/.github/workflows/integration_tests_validation.yaml +++ b/.github/workflows/integration_tests_validation.yaml @@ -28,8 +28,8 @@ jobs: - uses: actions/checkout@v3 - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 - - run: sudo apt-get -y update - - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev + - name: Install requirements + run: ./.github/scripts/dependency.sh - name: Install runc 1.1.0 run: | wget -q https://github.com/opencontainers/runc/releases/download/v1.1.0/runc.amd64 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 55b65b4c1..cb941109d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,6 +24,7 @@ jobs: tests/rust-integration-tests/runtimetest: ./tests/rust-integration-tests/runtimetest tests/rust-integration-tests/integration_test: ./tests/rust-integration-tests/integration_test tests/rust-integration-tests/test_framework: ./tests/rust-integration-tests/test_framework + check: needs: [changes] if: ${{ !contains(needs.changes.outputs.dirs, '[]') }} @@ -37,7 +38,8 @@ jobs: - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 - run: rustup component add rustfmt clippy - - run: sudo apt-get -y update + - name: Install requirements + run: ./.github/scripts/dependency.sh - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev - name: Check formatting run: cargo fmt --all -- --check @@ -45,6 +47,7 @@ jobs: - name: Check clippy lints working-directory: ${{matrix.dirs}} run: cargo clippy --all-targets --all-features -- -D warnings + tests: runs-on: ubuntu-20.04 timeout-minutes: 15 @@ -58,6 +61,7 @@ jobs: run: | export LD_LIBRARY_PATH=$HOME/.wasmedge/lib cd ./crates && cargo test --all --all-features --no-fail-fast + coverage: runs-on: ubuntu-20.04 timeout-minutes: 15 @@ -72,10 +76,8 @@ jobs: uses: taiki-e/install-action@v1 with: tool: cargo-llvm-cov@0.4.0 - - name: Update System Libraries - run: sudo apt-get -y update - - name: Install System Libraries - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev + - name: Install requirements + run: ./.github/scripts/dependency.sh - name: Run Test Coverage for youki run: | cargo llvm-cov clean --workspace @@ -85,6 +87,7 @@ jobs: uses: codecov/codecov-action@v2 with: file: ./coverage.lcov + integration_tests: runs-on: ubuntu-20.04 timeout-minutes: 15 @@ -94,11 +97,13 @@ jobs: submodules: recursive - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 - - run: sudo apt-get -y update - - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev - - uses: actions/setup-go@v2 + - name: Install requirements + run: ./.github/scripts/dependency.sh + - uses: actions/setup-go@v3 with: go-version: "1.17.6" + cache: true + cache-dependency-path: tests/oci-runtime-tests/src/github.com/opencontainers/runtime-tools/go.sum - name: Build run: make youki-release - name: Run integration tests diff --git a/.github/workflows/podman_tests.yaml b/.github/workflows/podman_tests.yaml index 77735ebeb..f9af9ce8b 100644 --- a/.github/workflows/podman_tests.yaml +++ b/.github/workflows/podman_tests.yaml @@ -7,8 +7,8 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - - run: sudo apt-get -y update - - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev libgpgme-dev bats + - name: Install requirements + run: ./.github/scripts/dependency.sh - run: make youki-dev - run: sudo cp youki /usr/local/bin - name: Clone podman repository diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6ce05b4d6..eb44f0437 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,8 +12,8 @@ jobs: - uses: actions/checkout@v3 with: submodules: recursive - - run: sudo apt-get -y update - - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev libclang-dev + - name: Install requirements + run: ./.github/scripts/dependency.sh - name: Set up cargo - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 @@ -28,8 +28,8 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - - run: sudo apt-get -y update - - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev + - name: Install requirements + run: ./.github/scripts/dependency.sh - name: Set up cargo - name: Setup Rust toolchain and cache uses: actions-rust-lang/setup-rust-toolchain@v1.3.7