diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml new file mode 100644 index 00000000..88be80c4 --- /dev/null +++ b/.github/workflows/staging.yml @@ -0,0 +1,57 @@ +# Copyright 2024 NVIDIA CORPORATION +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Staging E2E Tests + +on: + pull_request: + types: + - opened + - synchronize + branches: + - main + - release-* + +jobs: + staging-e2e: + runs-on: pdx01-arc-runners + steps: + - uses: actions/checkout@v4 + name: Check out code + - name: Calculate build vars + id: vars + run: | + echo "COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}" >> $GITHUB_ENV + - name: Set up Holodeck + uses: NVIDIA/holodeck@v0.2.1 + with: + aws_access_key_id: ${{ env.AWS_ACCESS_KEY_ID }} + aws_secret_access_key: ${{ env.AWS_SECRET_ACCESS_KEY }} + aws_ssh_key: ${{ env.AWS_SSH_KEY }} + holodeck_config: "tests/aws.yaml" + - name: Run e2e tests + env: + KUBECONFIG: ${{ github.workspace }}/kubeconfig + E2E_IMAGE_REPO: ghcr.io/nvidia/k8s-device-plugin + E2E_IMAGE_TAG: ${COMMIT_SHORT_SHA}-ubuntu22.04 + LOG_ARTIFACTS: ${{ github.workspace }}/e2e_logs + run: | + echo "Running e2e tests" + - name: Archive test logs + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: e2e-test-logs + path: ./e2e_logs/ + retention-days: 15 diff --git a/tests/aws.yml b/tests/aws.yml new file mode 100644 index 00000000..fa94d73c --- /dev/null +++ b/tests/aws.yml @@ -0,0 +1,21 @@ +apiVersion: holodeck.nvidia.com/v1alpha1 +kind: Environment +metadata: + name: HOLODECK_NAME + description: "end-to-end test infrastructure" +spec: + provider: aws + auth: + keyName: cnt-ci + privateKey: HOLODECK_PRIVATE_KEY + instance: + type: g4dn.xlarge + region: us-west-1 + ingressIpRanges: + - 0.0.0.0/0 + image: + architecture: amd64 + imageId: ami-0ce2cb35386fc22e9 + containerRuntime: + install: true + name: containerd diff --git a/tests/vsphere.yml b/tests/vsphere.yml new file mode 100644 index 00000000..27dcb497 --- /dev/null +++ b/tests/vsphere.yml @@ -0,0 +1,22 @@ +apiVersion: holodeck.nvidia.com/v1alpha1 +kind: Environment +metadata: + name: holodeck-vsphere-e2e-test + description: "end-to-end test infrastructure" +spec: + provider: vsphere + auth: + keyName: cnt-ci + privateKey: /home/nvidia/.ssh/gpu_runner + VsphereVirtualMachine: + vCenterURL: "pdx01egxvc01.nvidia.com" + datacenter: "PDX01" + datastore: "PDX01EGX_vSAN_001" + cluster: "PDX01EGX001" + network: "PDX01EGXDVS001_Internal_307_10.185.111.0_24" + vmFolder: "GitHub ARC" + resoursePool: "CNT-ARC" + templateImage: "GPU_UBUNTU_TEMPLATE" + containerRuntime: + install: true + name: containerd