diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml index 33c89c84..1b23f7d0 100644 --- a/.github/workflows/integration.yaml +++ b/.github/workflows/integration.yaml @@ -16,11 +16,26 @@ jobs: test: name: Integration tests runs-on: self-hosted + + strategy: + matrix: + flavors: + - name: sonic + - name: cumulus + steps: - name: Gain back workspace permissions # https://github.com/actions/checkout/issues/211 run: | [ -d "${GITHUB_WORKSPACE}" ] && sudo chown -R $USER:$USER ${GITHUB_WORKSPACE} + - name: Setup Containerlab + run: | + bash -c "$(curl -sL https://get.containerlab.dev)" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # we can remove desired version again after this fix was released: https://github.com/srl-labs/containerlab/pull/2000 + DESIRED_VERSION: v0.52.0 + - name: Checkout uses: actions/checkout@v4 @@ -33,6 +48,7 @@ jobs: make integration-deployment make integration-ansible-modules env: + MINI_LAB_FLAVOR: ${{ matrix.flavors.name }} DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }} @@ -40,6 +56,7 @@ jobs: uses: EnricoMi/publish-unit-test-result-action@v2 with: files: test/integration/**/output/*.xml + if: ${{ matrix.flavors.name == 'sonic' }} - name: Slack Notification on Success uses: rtCamp/action-slack-notify@v2 @@ -48,11 +65,11 @@ jobs: env: SLACK_COLOR: good SLACK_TITLE: 'Integration Tests succeeded' - if: ${{ success() }} + if: ${{ matrix.flavors.name == 'sonic' && success() }} - name: Slack Notification on Failure uses: rtCamp/action-slack-notify@v2 env: SLACK_COLOR: red SLACK_TITLE: 'Integration Tests failed' - if: ${{ failure() }} + if: ${{ matrix.flavors.name == 'sonic' && failure() }} diff --git a/release.yaml b/release.yaml index b2a084c3..2d6628ea 100644 --- a/release.yaml +++ b/release.yaml @@ -7,13 +7,13 @@ ansible-roles: version: v0.2.9 metal-roles: repository: https://github.com/metal-stack/metal-roles - version: v0.11.12 + version: v0.11.15 binaries: metal-stack: kernel: repository: https://github.com/metal-stack/kernel - url: https://github.com/metal-stack/kernel/releases/download/6.6.26-140/metal-kernel - version: 6.6.26-140 + url: https://github.com/metal-stack/kernel/releases/download/6.6.28-141/metal-kernel + version: 6.6.28-141 metal-hammer: repository: https://github.com/metal-stack/metal-hammer url: https://github.com/metal-stack/metal-hammer/releases/download/v0.12.3/metal-hammer-initrd.img.lz4 @@ -58,7 +58,7 @@ docker-images: firewall-controller-manager: name: ghcr.io/metal-stack/firewall-controller-manager repository: https://github.com/metal-stack/firewall-controller-manager - tag: v0.3.4 + tag: v0.3.5 gardener-extension-audit: name: ghcr.io/metal-stack/gardener-extension-audit repository: https://github.com/metal-stack/gardener-extension-audit @@ -66,7 +66,7 @@ docker-images: gardener-extension-provider-metal: name: ghcr.io/metal-stack/gardener-extension-provider-metal repository: https://github.com/metal-stack/gardener-extension-provider-metal - tag: v0.22.9 + tag: v0.22.10 machine-controller-manager: name: eu.gcr.io/gardener-project/gardener/machine-controller-manager repository: https://github.com/gardener/machine-controller-manager @@ -271,7 +271,7 @@ projects: metal-stack: mini-lab: repository: https://github.com/metal-stack/mini-lab - version: v0.3.6 + version: v0.4.0 repositories: third-party: gardener: diff --git a/test/integration/ci-prep.sh b/test/integration/ci-prep.sh index e119166e..b9e338bf 100755 --- a/test/integration/ci-prep.sh +++ b/test/integration/ci-prep.sh @@ -27,7 +27,6 @@ cd "${MINI_LAB_PATH}" git checkout "${MINI_LAB_VERSION}" # self hosted runners get dirty, we need to clean up first -make cleanup ./test/ci-cleanup.sh cd - diff --git a/test/integration/deployment/test/common.py b/test/integration/deployment/test/common.py index ed1a2d2a..e0e0258e 100644 --- a/test/integration/deployment/test/common.py +++ b/test/integration/deployment/test/common.py @@ -1,4 +1,3 @@ -import time import unittest diff --git a/test/integration/deployment/test/deployment_test.py b/test/integration/deployment/test/deployment_test.py index 5b91c46b..e042f4f7 100644 --- a/test/integration/deployment/test/deployment_test.py +++ b/test/integration/deployment/test/deployment_test.py @@ -76,18 +76,24 @@ class MetalSwitchPlaneDeployment(common.TestinfraCommon): def __init__(self, *args, **kwargs): super(MetalSwitchPlaneDeployment, self).__init__(*args, **kwargs) self.hosts = testinfra.get_hosts(["ssh://leaf01", "ssh://leaf02"]) + self.is_sonic = self.hosts[0].file("/etc/sonic/sonic_version.yml").exists def test_metal_core_service(self): for host in self.hosts: self.service_enabled_and_running(host, "metal-core") def test_pixiecore_service(self): - for host in self.hosts: - self.service_enabled_and_running(self.hosts[0], "pixiecore") + self.service_enabled_and_running(self.hosts[0], "pixiecore") def test_frr_service(self): for host in self.hosts: - self.service_enabled_and_running(host, "frr") + if self.is_sonic: + self.service_enabled_and_running(host, "bgp") + else: + self.service_enabled_and_running(host, "frr") def test_dhcpd_service(self): - self.service_enabled_and_running(self.hosts[0], "dhcpd") + if self.is_sonic: + self.service_enabled_and_running(self.hosts[0], "isc-dhcp-server") + else: + self.service_enabled_and_running(self.hosts[0], "dhcpd")