Sonobuoy e2e nigthly tests #293
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: Nightly Latest/Edge Tests | |
on: | |
schedule: | |
- cron: "0 0 * * *" # Runs every midnight | |
pull_request: # todo remove before merge | |
permissions: | |
contents: read | |
jobs: | |
test-integration: | |
name: Integration Test ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.release }} | |
env: | |
# todo(mac) e2e works with Cilium to 1.17 remove if after upgrade | |
TEST_CNCF_E2E: ${{ matrix.release == 'latest/edge/moonray' }} | |
strategy: | |
matrix: | |
os: ["ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"] | |
arch: ["amd64", "arm64"] | |
release: ["latest/edge/moonray", "latest/edge/classic"] | |
fail-fast: false # TODO: remove once arm64 works | |
runs-on: ${{ matrix.arch == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-20.04' }} | |
steps: | |
- name: Checking out repo | |
uses: actions/checkout@v4 | |
- name: Install lxd and tox | |
run: | | |
sudo apt update | |
sudo apt install -y tox | |
sudo snap refresh lxd --channel 5.21/stable | |
sudo lxd init --auto | |
sudo usermod --append --groups lxd $USER | |
sg lxd -c 'lxc version' | |
- name: Create build directory | |
run: mkdir -p build | |
- name: Install ${{ matrix.release }} k8s snap | |
run: | | |
cd build | |
snap download k8s --channel=${{ matrix.release }} --basename k8s | |
- name: Run end to end tests # tox path needs to be specified for arm64 | |
env: | |
TEST_SNAP: ${{ github.workspace }}/build/k8s.snap | |
TEST_SUBSTRATE: lxd | |
TEST_LXD_IMAGE: ${{ matrix.os }} | |
TEST_SNAP_RELEASE: ${{ matrix.release }} | |
TEST_INSPECTION_REPORTS_DIR: ${{ github.workspace }}/inspection-reports | |
# Test the latest (up to) 6 releases for the flavour | |
# TODO(ben): upgrade nightly to run all flavours | |
TEST_VERSION_UPGRADE_CHANNELS: "recent 6 classic" | |
# Upgrading from 1.30 is not supported. | |
TEST_VERSION_UPGRADE_MIN_RELEASE: "1.31" | |
TEST_STRICT_INTERFACE_CHANNELS: "recent 6 strict" | |
run: | | |
export PATH="/home/runner/.local/bin:$PATH" | |
cd tests/integration && sg lxd -c 'tox -vve integration' | |
- name: Create env variables for artifacts | |
if: failure() | |
run: | | |
echo "os_dash=${{ matrix.os }}" | sed 's/:/-/g' >> $GITHUB_ENV | |
echo "release_dash=${{ matrix.release }}" | sed 's#/#-#g'>> $GITHUB_ENV | |
- name: Prepare inspection reports | |
if: failure() | |
run: | | |
tar -czvf inspection-reports.tar.gz -C ${{ github.workspace }} inspection-reports | |
echo "artifact_name=inspection-reports-${{ matrix.os }}-${{ matrix.arch }}" | sed 's/:/-/g' >> $GITHUB_ENV | |
- name: Upload inspection report artifact | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.artifact_name }} | |
path: ${{ github.workspace }}/inspection-reports_${{ env.os_dash }}_${{ env.release_dash }}_${{ matrix.arch }}.tar.gz | |
- name: Tmate debugging session | |
if: ${{ failure() && github.event_name == 'pull_request' }} | |
uses: mxschmitt/action-tmate@v3 | |
timeout-minutes: 10 | |
- name: Extract CNCF conformance report | |
if: ${{ failure() && ( env.TEST_CNCF_E2E == 'true' ) }} | |
working-directory: tests/integration | |
run: | | |
tar -xf sonobuoy_e2e.tar.gz --one-top-level | |
- name: Upload CNCF conformance report artifact | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() && ( env.TEST_CNCF_E2E == 'true' ) }} | |
with: | |
name: report_sonobuoy_e2e_${{ env.os_dash }}_${{ env.release_dash }}_${{ matrix.arch }} | |
path: tests/integration/sonobuoy_e2e |