Skip to content

QE Testing (Ubuntu-hosted) #359

QE Testing (Ubuntu-hosted)

QE Testing (Ubuntu-hosted) #359

Workflow file for this run

---
name: QE Testing (Ubuntu-hosted)
on:
pull_request:
branches: [ main ]
workflow_dispatch:
# Schedule a daily cron at midnight UTC
schedule:
- cron: '0 0 * * *'
env:
TEST_REPO: test-network-function/cnf-certification-test
jobs:
qe-testing:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
suite: [accesscontrol, affiliatedcertification, manageability, networking, lifecycle, performance, platformalteration, observability, operator]
env:
SHELL: /bin/bash
KUBECONFIG: '/home/runner/.kube/config'
PFLT_DOCKERCONFIG: '/home/runner/.docker/config'
TEST_TNF_IMAGE_NAME: quay.io/testnetworkfunction/cnf-certification-test
TEST_TNF_IMAGE_TAG: unstable
DOCKER_CONFIG_DIR: '/home/runner/.docker/'
SKIP_PRELOAD_IMAGES: true # Not needed for github-hosted runs
steps:
- name: Write temporary docker file
run: |
mkdir -p /home/runner/.docker
touch ${PFLT_DOCKERCONFIG}
echo '{ "auths": {} }' >> ${PFLT_DOCKERCONFIG}
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22.1
- name: Disable default go problem matcher
run: echo "::remove-matcher owner=go::"
- name: Check out code
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
- name: Check out `cnf-certification-test-partner`
uses: actions/checkout@v4
with:
repository: test-network-function/cnf-certification-test-partner
path: cnf-certification-test-partner
- name: Extract dependent Pull Requests
uses: depends-on/depends-on-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
extra-dirs: cnfcert-tests-verification/cnf-certification-test-partner cnfcert-tests-verification/cnf-certification-test
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y python3-pip
sudo pip3 install j2cli
# Create a Kind cluster for testing.
- name: Bootstrap the Kind and OC/Kubectl binaries for the `local-test-infra`
run: make bootstrap-cluster
working-directory: cnf-certification-test-partner
# Restart docker using /mnt/docker-storage (sdb) instead of /var/lib/docker (sda).
# This step needs to be done right after the partner repo's bootstrap scripts, as they
# overwrite the docker's daemon.json.
- name: Make docker to use /mnt (sdb) for storage
run: |
df -h
lsblk
sudo mkdir /mnt/docker-storage
sudo jq '. +={"data-root" : "/mnt/docker-storage"}' < /etc/docker/daemon.json > /tmp/docker-daemon.json
sudo cp /tmp/docker-daemon.json /etc/docker/daemon.json
cat /etc/docker/daemon.json
sudo systemctl restart docker
sudo ls -la /mnt/docker-storage
- name: Create `local-test-infra` OpenShift resources
run: make rebuild-cluster
working-directory: cnf-certification-test-partner
- name: Install partner resources
run: make install-for-qe
working-directory: cnf-certification-test-partner
- name: Show pods
run: oc get pods -A
- name: Wait for all pods to be ready
run: ./scripts/wait-for-all-pods-running.sh
working-directory: cnf-certification-test-partner
- name: Clone the cnf-certification-test repository
uses: actions/checkout@v4
with:
repository: ${{ env.TEST_REPO }}
path: cnf-certification-test
ref: main
- name: Extract dependent Pull Requests
uses: depends-on/depends-on-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run the tests
uses: nick-fields/retry@v3
with:
timeout_minutes: 60
max_attempts: 3
command: FEATURES=${{matrix.suite}} TNF_REPO_PATH=${GITHUB_WORKSPACE}/cnf-certification-test TNF_IMAGE=${{env.TEST_TNF_IMAGE_NAME}} TNF_IMAGE_TAG=${{env.TEST_TNF_IMAGE_TAG}} DISABLE_INTRUSIVE_TESTS=true ENABLE_PARALLEL=true ENABLE_FLAKY_RETRY=true JOB_ID=${{github.run_id}} make test-features
check-all-dependencies-are-merged:
runs-on: ubuntu-latest
steps:
- name: Extract dependent PR
uses: depends-on/depends-on-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
check-unmerged-pr: true
...