@@ -66,13 +66,14 @@ jobs:
66
66
if [[ "${pr_label}" =~ ${backport_regex} ]]; then
67
67
major="${BASH_REMATCH[1]}"
68
68
minor="${BASH_REMATCH[2]}"
69
- pr_majors+=("${major}")
70
69
if [ "${minor}" != "x" ]; then
70
+ pr_majors+=("${major}")
71
71
has_exact_backport_label=true
72
72
else
73
73
pr_floating_majors+=("${major}")
74
74
fi
75
75
else
76
+ # Matches 'skip-backport'
76
77
has_exact_backport_label=true
77
78
fi
78
79
90
91
exit 1
91
92
fi
92
93
94
+ # Validate that a floating backport label exists for each exact backport label major
95
+ # version.
96
+
93
97
has_floating_backport_labels=true
94
98
95
99
for pr_major in "${pr_majors[@]}"; do
@@ -121,3 +125,27 @@ jobs:
121
125
if [ "${has_floating_backport_labels}" != true ]; then
122
126
exit 1
123
127
fi
128
+
129
+ # Validate that an exact backport label exists for each floating backport label major
130
+ # version.
131
+
132
+ has_exact_backports_labels=true
133
+
134
+ for pr_floating_major in "${pr_floating_majors[@]}"; do
135
+ exists_exact_major=false
136
+ for pr_major in "${pr_majors[@]}"; do
137
+ if [ "${pr_floating_major}" -eq "${pr_major}" ]; then
138
+ has_exact_major=true
139
+ fi
140
+ done
141
+
142
+ if [ "${has_exact_major}" != true ]; then
143
+ has_exact_backport_labels=false
144
+ echo "::error::Missing exact backport label for '${pr_floating_major}.x'"
145
+ fi
146
+ done
147
+
148
+ if [ "${has_exact_backport_labels}" != true ]; then
149
+ exit 1
150
+ fi
151
+
0 commit comments