name: Hive E2E Test on: push: branches: [main, e2e] workflow_dispatch: jobs: build_e2e_image: name: Build E2E Image runs-on: self-hosted steps: - name: Checkout Code uses: actions/checkout@v6 with: path: hive - name: Clone Dependencies run: ./hive/scripts/clone-deps.sh - name: Build E2E Image run: | docker build \ -t hive-e2e:latest \ -f hive/tests/e2e/Dockerfile.e2e \ . hive_e2e_test: name: Hive Single-Node E2E Test runs-on: self-hosted needs: build_e2e_image steps: - name: Run E2E Tests run: | docker run --privileged --rm \ -v /dev/kvm:/dev/kvm \ --name hive-e2e-test \ hive-e2e:latest hive_multinode_e2e_test: name: Hive Multi-Node E2E Test runs-on: self-hosted needs: build_e2e_image steps: - name: Run Multi-Node E2E Tests run: | docker run --privileged --rm \ -v /dev/kvm:/dev/kvm \ --cap-add=NET_ADMIN \ --name hive-multinode-e2e-test \ hive-e2e:latest \ ./tests/e2e/run-multinode-e2e.sh cleanup: name: Cleanup runs-on: self-hosted needs: [hive_e2e_test, hive_multinode_e2e_test] if: always() steps: - name: Remove Stale Containers run: | docker rm -f hive-e2e-test 2>/dev/null || true docker rm -f hive-multinode-e2e-test 2>/dev/null || true - name: Prune Docker Images run: docker image prune -f