Update cache branch #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update cache files | |
# on: push | |
on: | |
schedule: | |
# workflow may be delayed for longer when it's on the hour | |
- cron: "20 07 * * *" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- name: Display system info | |
run: | | |
python -c "import os; os.getcwd()" | |
python -c "import sys; print(sys.version)" | |
- name: Install package | |
run: | | |
pip install setuptools --upgrade | |
pip install . | |
# cache key syntax: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#using-contexts-to-create-cache-keys | |
- name: Restore cached files | |
id: cache-files-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: ./cache | |
key: ${{ runner.os }}-${{ hashFiles('~/.cache_key') }} | |
- name: Run update script | |
run: | | |
python -m repo_stats.runner -a ${{ secrets.ADS_TOKEN }} -g ${{ secrets.GIT_TOKEN }} -c "cache" | |
# caches are immutable, so create a new one (new key) each time any of the files being cached change. | |
# the cache key will be new if any files in the cache path have been changed by 'repo_stats.runner'. | |
# otherwise the cache save will 'fail' (because there's no need to update it - that's fine) | |
- name: Update cached files | |
id: cache-files-save | |
uses: actions/cache/save@v4 | |
with: | |
path: ./cache | |
key: ${{ runner.os }}-${{ hashFiles('./cache') }} | |
- name: Save cache key | |
run: | | |
echo ${{ hashFiles('./cache') }} >> ~/.cache_key | |
- name: Create and push to orphan branch 'cache' | |
run: | | |
git remote set-url origin https://git:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git | |
git config --global user.name "github-actions-bot" | |
git config --global user.email "[email protected]" | |
git checkout --orphan cache | |
git rm -rf . | |
git add cache | |
git commit -m "update cache" | |
git push -f --set-upstream origin cache | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |