@@ -48,16 +48,30 @@ jobs:
48
48
fi
49
49
50
50
- name : List all ginkgo tests labels
51
+ id : list-ginkgo-labels
52
+ if : ${{ steps.check-all.outputs.run-all == 'false' }}
51
53
run : |
52
54
sudo apt-get install -y jq
53
55
go install github.com/onsi/ginkgo/v2/ginkgo@latest
54
56
ginkgo labels ./test/e2e | cut -c 5- > e2e_labels.txt
55
57
ginkgo labels ./test/int | cut -c 5- > int_labels.txt
56
- labels=$(jq -s '.[0] + .[1] | unique' e2e_labels.txt int_labels.txt)
57
- echo "Available labels: $labels"
58
- echo "available-labels=$labels" >> $GITHUB_ENV
58
+ jq -s '.[0] + .[1] | unique' e2e_labels.txt int_labels.txt > all_labels.json
59
+ available_labels=$(jq -r '.[]' all_labels.json)
60
+ echo "Available labels: $available_labels"
61
+ echo "available-labels=$available_labels" >> $GITHUB_ENV
62
+
63
+ pr_labels="${{ steps.get-labels.outputs.labels }}"
64
+ intersection=$(echo $pr_labels $available_labels | tr ' ' '\n' | sort | uniq -d)
65
+ echo "Intersection of PR labels and available labels: $intersection"
66
+ echo "intersection-labels=$intersection" >> $GITHUB_ENV
67
+
68
+ echo "${{ steps.get-labels.outputs.labels }}" | jq -R 'split(",")' > pr_labels.json
69
+ jq -s '.[0] as $all | .[1] | map(select($all[] == .))' all_labels.json pr_labels.json > merged_labels.json
59
70
60
- - name : Run e2e tests
71
+ - name : Run all e2e tests
72
+ if : ${{ steps.check-all.outputs.run-all == 'true' }}
73
+
74
+ - name : Run selected e2e tests
61
75
if : ${{ steps.get-labels.outputs.labels != '' }}
62
76
run : |
63
77
echo "Labels from PR: ${{ steps.get-labels.outputs.labels }}"
0 commit comments