-
Notifications
You must be signed in to change notification settings - Fork 14
126 lines (112 loc) · 3.99 KB
/
e2e.yaml
File metadata and controls
126 lines (112 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# 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: End-to-end Tests
on:
workflow_call:
secrets:
AWS_ACCESS_KEY_ID:
required: true
AWS_SECRET_ACCESS_KEY:
required: true
AWS_SSH_KEY:
required: true
jobs:
e2e-test:
runs-on: linux-amd64-cpu4
if: ${{ github.event.workflow_run.conclusion == 'success' }} && ${{ github.event.workflow_run.event == 'push' }}
strategy:
matrix:
label: [default, legacy, dra, kernel, rpm-rocky, rpm-al2023, rpm-fedora]
name: E2E Test (${{ matrix.label }})
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: 'stable'
check-latest: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y make
- name: Run e2e test for ${{ matrix.label }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_SSH_KEY: ${{ secrets.AWS_SSH_KEY }}
LOG_ARTIFACT_DIR: e2e_logs
run: |
e2e_ssh_key=$(mktemp)
echo "${{ secrets.AWS_SSH_KEY }}" > "$e2e_ssh_key"
chmod 600 "$e2e_ssh_key"
export E2E_SSH_KEY="$e2e_ssh_key"
EXTRA_ARGS=""
if [ "${{ matrix.label }}" = "default" ]; then
EXTRA_ARGS="--json-report ginkgo.json"
fi
# RPM suites run both single-node and cluster tests (~60min total);
# increase timeout from the 1h default to avoid cleanup timeouts.
case "${{ matrix.label }}" in
rpm-*) EXTRA_ARGS="$EXTRA_ARGS --timeout=90m" ;;
esac
make -f tests/Makefile test GINKGO_ARGS="--label-filter='${{ matrix.label }}' $EXTRA_ARGS"
- name: Archive Ginkgo logs
uses: actions/upload-artifact@v7
with:
name: ginkgo-logs-${{ matrix.label }}
path: ginkgo.json
retention-days: 15
# ARM64 GPU E2E test — runs only on merge to main (g5g instances are expensive)
e2e-test-arm64:
runs-on: linux-amd64-cpu4
if: github.ref == 'refs/heads/main'
name: E2E Test (arm64)
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: 'stable'
check-latest: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y make
- name: Run ARM64 GPU e2e test
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_SSH_KEY: ${{ secrets.AWS_SSH_KEY }}
LOG_ARTIFACT_DIR: e2e_logs
run: |
e2e_ssh_key=$(mktemp)
echo "${{ secrets.AWS_SSH_KEY }}" > "$e2e_ssh_key"
chmod 600 "$e2e_ssh_key"
export E2E_SSH_KEY="$e2e_ssh_key"
make -f tests/Makefile test GINKGO_ARGS="--label-filter='arm64'"
integration-test:
runs-on: linux-amd64-cpu4
if: ${{ github.event.workflow_run.conclusion == 'success' }} && ${{ github.event.workflow_run.event == 'push' }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Holodeck
uses: NVIDIA/holodeck@main
with:
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws_ssh_key: ${{ secrets.AWS_SSH_KEY }}
holodeck_config: "tests/data/test_aws.yml"