Fix handling of no data in platform EOL checks. (#14617)
Also, re-enable EOL checking for Debian.
Austin S. Hemmelgarn committed
Feb 28, 2023 at 09:03 UTC
533b98d44d9954d35e90b41ba5b5f1110e804ec3
3 files changed
+18
-7
.github/data/distros.yml
+1
-1
@@ -92,7 +92,7 @@ include:
92
distro: debian
93
version: "12"
94
base_image: debian:bookworm
95
- eol_check: false
95
+ eol_check: true
96
env_prep: |
97
apt-get update
98
jsonc_removal: |
.github/scripts/platform-impending-eol.py
+12
-5
@@ -17,18 +17,25 @@ LEAD_DAYS = datetime.timedelta(days=30)
17
DISTRO = sys.argv[1]
18
RELEASE = sys.argv[2]
19
20
+EXIT_NOT_IMPENDING = 0
21
+EXIT_IMPENDING = 1
22
+EXIT_NO_DATA = 2
23
+EXIT_FAILURE = 3
24
25
with urllib.request.urlopen(f'{ URL_BASE }/{ DISTRO }/{ RELEASE }.json') as response:
26
match response.status:
27
case 200:
28
data = json.load(response)
29
case 404:
26
- sys.exit(f'No data available for { DISTRO } { RELEASE }.')
30
+ print(f'No data available for { DISTRO } { RELEASE }.', file=sys.stderr)
31
+ sys.exit(EXIT_NO_DATA)
32
case _:
28
- sys.exit(
33
+ print(
34
f'Failed to retrieve data for { DISTRO } { RELEASE } ' +
30
- f'(status: { response.status }).'
35
+ f'(status: { response.status }).',
36
+ file=sys.stderr
37
)
38
+ sys.exit(EXIT_FAILURE)
39
40
eol = datetime.date.fromisoformat(data['eol'])
41
@@ -36,6 +43,6 @@ offset = abs(eol - NOW)
43
44
if offset <= LEAD_DAYS:
45
print(data['eol'])
39
- sys.exit(2)
46
+ sys.exit(EXIT_IMPENDING)
47
else:
41
- sys.exit(0)
48
+ sys.exit(EXIT_NOT_IMPENDING)
.github/workflows/platform-eol-check.yml
+5
-1
@@ -54,10 +54,14 @@ jobs:
54
d="$(.github/scripts/platform-impending-eol.py ${{ matrix.distro }} ${{ matrix.release }})"
55
case $? in
56
0) echo "pending=false" >> "${GITHUB_OUTPUT}" ;;
57
- 2)
57
+ 1)
58
echo "pending=true" >> "${GITHUB_OUTPUT}"
59
echo "date=${d}" >> "${GITHUB_OUTPUT}"
60
;;
61
+ 2)
62
+ echo "pending=false" >> "${GITHUB_OUTPUT}"
63
+ echo "::info::No EOL information found for ${{ matrix.distro }} ${{ matrix.release }}"
64
+ ;;
65
*)
66
echo "::error::Failed to check EOL date for ${{ matrix.distro }} ${{ matrix.release }}"
67
exit 1