-
Notifications
You must be signed in to change notification settings - Fork 13
127 lines (110 loc) · 4.34 KB
/
Copy pathrun-task-tests.yaml
File metadata and controls
127 lines (110 loc) · 4.34 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
127
# yamllint disable-file
# <TEMPLATED FILE!>
# This file comes from the templates at https://github.com/konflux-ci/task-repo-shared-ci.
# Please consider sending a PR upstream instead of editing the file directly.
# See the SHARED-CI.md document in this repo for more details.
name: Run Task Tests
"on":
pull_request:
types:
- opened
- synchronize
- reopened
merge_group:
types: [checks_requested]
jobs:
run-task-tests:
runs-on: ubuntu-24.04
steps:
- name: Checkout this Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: "${{ github.event.pull_request.head.sha || github.event.merge_group.head_sha }}"
path: self
- name: Get all changed files in the PR from task directory
id: changed-task-dirs
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.0
with:
files: |
# Any task yaml or script (including its tests) is changed
task/**/*.{yaml,sh}
dir_names: "true"
path: self
- name: Check if tests dir exists for all the tasks changed
if: steps.changed-task-dirs.outputs.any_changed == 'true'
id: tasks-to-be-tested
env:
CHANGED_DIRS: ${{ steps.changed-task-dirs.outputs.all_changed_files }}
run: |
echo "Task Dirs changed in PR: ${CHANGED_DIRS}"
# Check if tests dir exists under each task dir
TASKS_TO_BE_TESTED=()
for TASK_DIR in ${CHANGED_DIRS}; do
TESTS_DIR=self/${TASK_DIR}/tests
if [ ! -d $TESTS_DIR ]; then
echo "INFO: tests dir does not exist: $TESTS_DIR"
continue
else
echo "INFO: tests dir exists for task: $TASK_DIR"
TASKS_TO_BE_TESTED+=("$TASK_DIR")
fi
done
echo "Tasks with tests: ${TASKS_TO_BE_TESTED[*]}"
echo "tasklist=${TASKS_TO_BE_TESTED[*]}" >> $GITHUB_OUTPUT
- name: Install tkn
if: steps.changed-task-dirs.outputs.any_changed == 'true'
uses: ./self/.github/actions/install-tkn
- name: Checkout konflux-ci/konflux-ci Repository
if: steps.changed-task-dirs.outputs.any_changed == 'true'
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
repository: 'konflux-ci/konflux-ci'
path: konflux-ci
ref: bff0729c4d6af2f449629ca5102ee41fae91c08e
- name: Create k8s Kind Cluster
if: steps.changed-task-dirs.outputs.any_changed == 'true'
uses: helm/kind-action@92086f6be054225fa813e0a4b13787fc9088faab # v1.13.0
with:
config: konflux-ci/kind-config.yaml
- name: Show version information
if: steps.changed-task-dirs.outputs.any_changed == 'true'
run: |
kubectl version
kind version
- name: Deploying Dependencies
if: steps.changed-task-dirs.outputs.any_changed == 'true'
run: |
cd $GITHUB_WORKSPACE/konflux-ci
./deploy-deps.sh
- name: Wait for the dependencies to be ready
if: steps.changed-task-dirs.outputs.any_changed == 'true'
run: |
cd $GITHUB_WORKSPACE/konflux-ci
./wait-for-all.sh
- name: Validate Tekton Tasks Syntax
if: steps.changed-task-dirs.outputs.any_changed == 'true'
run: |
cd self
./.github/scripts/check_tekton_tasks.sh ${{ steps.changed-task-dirs.outputs.all_changed_files }}
- name: Deploying Konflux
if: steps.tasks-to-be-tested.outputs.tasklist != ''
run: |
cd $GITHUB_WORKSPACE/konflux-ci
./deploy-konflux.sh
- name: List namespaces
if: steps.tasks-to-be-tested.outputs.tasklist != ''
run: |
kubectl get namespace
- name: Deploy test resources
if: steps.tasks-to-be-tested.outputs.tasklist != ''
run: |
cd $GITHUB_WORKSPACE/konflux-ci
./deploy-test-resources.sh
- name: Run the task tests
if: steps.tasks-to-be-tested.outputs.tasklist != ''
env:
TASK_LIST: ${{ steps.tasks-to-be-tested.outputs.tasklist }}
run: |
echo "Tasks to be tested: ${TASK_LIST}"
cd $GITHUB_WORKSPACE/self
./.github/scripts/test_tekton_tasks.sh ${TASK_LIST}