1+ name : Validate with Devfile Registry Tests
2+
3+ on :
4+ push :
5+ branches : [ main ]
6+ pull_request :
7+ branches : [ main ]
8+ workflow_dispatch :
9+
10+ jobs :
11+ validate-devfile :
12+ runs-on : ubuntu-latest
13+
14+ steps :
15+ - name : Checkout current repo
16+ uses : actions/checkout@v4
17+ with :
18+ path : current-repo
19+
20+ - name : Checkout devfile registry
21+ uses : actions/checkout@v4
22+ with :
23+ repository : devfile/registry
24+ path : registry
25+
26+ - name : Setup test environment with overrides
27+ run : |
28+ cp -r registry/tests registry-tests-base
29+
30+ if [ -d "current-repo/tests" ]; then
31+ echo "Found local test overrides, applying them..."
32+ cp -r current-repo/tests/* registry-tests-base/ 2>/dev/null || true
33+ fi
34+
35+ mkdir -p registry/stacks/current-sample
36+ cp current-repo/devfile.yaml registry/stacks/current-sample/
37+ cp -r registry-tests-base/* registry/tests/
38+
39+ - name : Setup Go
40+ uses : actions/setup-go@v4
41+ with :
42+ go-version : ' 1.21'
43+
44+ - name : Install dependencies
45+ run : |
46+ sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
47+ sudo chmod +x /usr/local/bin/yq
48+ go install github.com/onsi/ginkgo/v2/ginkgo@latest
49+
50+ - name : Setup Minikube
51+ uses : medyagh/setup-minikube@master
52+ with :
53+ minikube-version : latest
54+ kubernetes-version : v1.28.0
55+
56+ - name : Run Registry Validation Tests
57+ working-directory : registry
58+ run : |
59+ cd tests/check_non_terminating
60+ go build -o flatten-parent .
61+ cd ../..
62+
63+ export STACKS="current-sample"
64+ export TEST_NAMESPACE="default"
65+ export YQ_PATH="yq"
66+ export ENV="minikube"
67+
68+ echo "Running validation tests for current sample..."
69+
70+ echo "=== Schema Validation ==="
71+ cd tests
72+ bash validate_devfile_schemas.sh
73+
74+ echo "=== Non-terminating Test ==="
75+ bash check_non_terminating.sh
76+
77+ echo "All tests completed successfully!"
78+
79+ - name : Cleanup
80+ if : always()
81+ run : |
82+ kubectl delete pods --all -n default --ignore-not-found=true || true
0 commit comments