Always save cache (#451)

Always save cache, even if one of the scripts returned an error.

Also use a workflow to clear the cache instead of relying on josStorer/get-current-time@v2.
This commit is contained in:
Marc Wrobel
2025-06-28 13:30:57 +02:00
committed by GitHub
parent 3beb0f6e34
commit db5ad5b64b
3 changed files with 49 additions and 12 deletions

18
.github/workflows/clear-cache.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: Clear Cache
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 1' # Every Monday at 00:00 UTC
jobs:
clear-cache:
name: Clear Cache
runs-on: ubuntu-latest
steps:
- name: Clear all caches
run: gh cache delete --all --succeed-on-no-caches
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OWNER: ${{ github.repository_owner }}
REPO: ${{ github.event.repository.name }}

View File

@@ -18,20 +18,14 @@ jobs:
name: Update data
runs-on: ubuntu-latest
steps:
- name: Get current week
uses: josStorer/get-current-time@v2
id: current-time
with:
format: YYYY-ww # 2022-01 to 2022-52 for eg
- name: Cache fetched repositories and HTTP requests
uses: actions/cache@v4
# Note that the cache will be destroyed every week by .github/workflows/clear-cache.yml.
# See https://github.com/actions/cache/tree/main/save#always-save-cache.
- name: Restore repositories and HTTP requests cache
id: cache-restore
uses: actions/cache/restore@v4
with:
key: 'update-cache'
path: ~/.cache
# The cache is reset on the first build of every week this way. If you wish to reset the cache manually,
# you can do it on https://github.com/endoflife-date/release-data/actions/caches or by updating
# the last part of the key below.
key: "${{ steps.current-time.outputs.formattedTime }}-2"
- name: Clone self repository
uses: actions/checkout@v4
@@ -76,6 +70,15 @@ jobs:
commit_message: ${{ steps.update_data.outputs.commit_message }}
commit_author: 'github-actions[bot] <github-actions[bot]@users.noreply.github.com>'
# See https://github.com/actions/cache/tree/main/save#always-save-cache.
- name: Save repositories and HTTP requests cache
id: cache-save
uses: actions/cache/save@v4
if: always() && steps.cache-restore.outputs.cache-hit != 'true'
with:
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
path: ~/.cache
# we still want to easily know if something went wrong
- name: Restore update.py failure
if: steps.update_data.outcome != 'success'