Fix handling of no data in platform EOL checks. (#14617)
Also, re-enable EOL checking for Debian.
This commit is contained in:
parent
45981cb734
commit
533b98d44d
2
.github/data/distros.yml
vendored
2
.github/data/distros.yml
vendored
@ -92,7 +92,7 @@ include:
|
|||||||
distro: debian
|
distro: debian
|
||||||
version: "12"
|
version: "12"
|
||||||
base_image: debian:bookworm
|
base_image: debian:bookworm
|
||||||
eol_check: false
|
eol_check: true
|
||||||
env_prep: |
|
env_prep: |
|
||||||
apt-get update
|
apt-get update
|
||||||
jsonc_removal: |
|
jsonc_removal: |
|
||||||
|
17
.github/scripts/platform-impending-eol.py
vendored
17
.github/scripts/platform-impending-eol.py
vendored
@ -17,18 +17,25 @@ LEAD_DAYS = datetime.timedelta(days=30)
|
|||||||
DISTRO = sys.argv[1]
|
DISTRO = sys.argv[1]
|
||||||
RELEASE = sys.argv[2]
|
RELEASE = sys.argv[2]
|
||||||
|
|
||||||
|
EXIT_NOT_IMPENDING = 0
|
||||||
|
EXIT_IMPENDING = 1
|
||||||
|
EXIT_NO_DATA = 2
|
||||||
|
EXIT_FAILURE = 3
|
||||||
|
|
||||||
with urllib.request.urlopen(f'{ URL_BASE }/{ DISTRO }/{ RELEASE }.json') as response:
|
with urllib.request.urlopen(f'{ URL_BASE }/{ DISTRO }/{ RELEASE }.json') as response:
|
||||||
match response.status:
|
match response.status:
|
||||||
case 200:
|
case 200:
|
||||||
data = json.load(response)
|
data = json.load(response)
|
||||||
case 404:
|
case 404:
|
||||||
sys.exit(f'No data available for { DISTRO } { RELEASE }.')
|
print(f'No data available for { DISTRO } { RELEASE }.', file=sys.stderr)
|
||||||
|
sys.exit(EXIT_NO_DATA)
|
||||||
case _:
|
case _:
|
||||||
sys.exit(
|
print(
|
||||||
f'Failed to retrieve data for { DISTRO } { RELEASE } ' +
|
f'Failed to retrieve data for { DISTRO } { RELEASE } ' +
|
||||||
f'(status: { response.status }).'
|
f'(status: { response.status }).',
|
||||||
|
file=sys.stderr
|
||||||
)
|
)
|
||||||
|
sys.exit(EXIT_FAILURE)
|
||||||
|
|
||||||
eol = datetime.date.fromisoformat(data['eol'])
|
eol = datetime.date.fromisoformat(data['eol'])
|
||||||
|
|
||||||
@ -36,6 +43,6 @@ offset = abs(eol - NOW)
|
|||||||
|
|
||||||
if offset <= LEAD_DAYS:
|
if offset <= LEAD_DAYS:
|
||||||
print(data['eol'])
|
print(data['eol'])
|
||||||
sys.exit(2)
|
sys.exit(EXIT_IMPENDING)
|
||||||
else:
|
else:
|
||||||
sys.exit(0)
|
sys.exit(EXIT_NOT_IMPENDING)
|
||||||
|
6
.github/workflows/platform-eol-check.yml
vendored
6
.github/workflows/platform-eol-check.yml
vendored
@ -54,10 +54,14 @@ jobs:
|
|||||||
d="$(.github/scripts/platform-impending-eol.py ${{ matrix.distro }} ${{ matrix.release }})"
|
d="$(.github/scripts/platform-impending-eol.py ${{ matrix.distro }} ${{ matrix.release }})"
|
||||||
case $? in
|
case $? in
|
||||||
0) echo "pending=false" >> "${GITHUB_OUTPUT}" ;;
|
0) echo "pending=false" >> "${GITHUB_OUTPUT}" ;;
|
||||||
2)
|
1)
|
||||||
echo "pending=true" >> "${GITHUB_OUTPUT}"
|
echo "pending=true" >> "${GITHUB_OUTPUT}"
|
||||||
echo "date=${d}" >> "${GITHUB_OUTPUT}"
|
echo "date=${d}" >> "${GITHUB_OUTPUT}"
|
||||||
;;
|
;;
|
||||||
|
2)
|
||||||
|
echo "pending=false" >> "${GITHUB_OUTPUT}"
|
||||||
|
echo "::info::No EOL information found for ${{ matrix.distro }} ${{ matrix.release }}"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "::error::Failed to check EOL date for ${{ matrix.distro }} ${{ matrix.release }}"
|
echo "::error::Failed to check EOL date for ${{ matrix.distro }} ${{ matrix.release }}"
|
||||||
exit 1
|
exit 1
|
||||||
|
Loading…
Reference in New Issue
Block a user