tests: add auto cloud-init test #858
Workflow file for this run
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: CI | |
on: [push, pull_request] | |
jobs: | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.8", "3.9", "3.10"] | |
os: [ ubuntu-22.04 ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
- name: install Qemu | |
run: | | |
uname -a | |
sudo apt-get update -y | |
sudo apt-get install -y cloud-utils qemu-system-x86 | |
- name: Install munet project | |
run: poetry install --all-extras --no-interaction | |
- name: Lint the project | |
run: make ci-lint | |
- name: Verify json schema is up-to-date | |
run: | | |
make munet/munet-schema.json | |
bash -c '[[ -z "$(git status -s --untracked=no)" ]]' | |
- name: Run YANG tests | |
run: make test-validate | |
- name: Make sure podman image is present | |
run: sudo podman pull docker.io/labn/docker-ci-test:20.04 | |
- name: Expose the environment | |
run: | | |
uname -a || true | |
cat /etc/os-release || true | |
cat /proc/meminfo || true | |
cat /proc/cpuinfo || true | |
- name: Run main tests | |
run: | | |
make FETCH_GH_TOKEN="${{ secrets.FETCH_GH_TOKEN }}" test | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v4 | |
with: | |
verbose: true | |
files: ./coverage.xml | |
# fail_ci_if_error: false | |
- name: Collect test logs | |
if: ${{ always() }} | |
run: | | |
sudo find /tmp/unet-test -type s -exec rm {} + | |
mkdir -p test-logs | |
sudo tar -C /tmp/unet-test -cf - . | tar -C test-logs -xf - | |
tar -cjf test-logs.tar.bz2 test-logs | |
- name: Archive test logs tarball | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-logs-tar-${{ matrix.python-version }} | |
path: test-logs.tar.bz2 |