Cache dependencies #356
This file contains hidden or 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: Cache dependencies | |
| # This workflow is triggered every 2 days and updates the Python | |
| # and pip dependencies cache | |
| on: | |
| schedule: | |
| - cron: '30 8 */2 * *' # This triggers the workflow at 4:30 AM ET every 2 days | |
| # cron syntax uses UTC time, so 4:30 AM ET is 8:30 AM UTC (for daylight time) | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| strategy: | |
| matrix: | |
| python-version: ['3.10', '3.11', '3.12', '3.13'] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Check full Python version | |
| run: | | |
| python --version | |
| python_version=$(python --version 2>&1 | cut -d' ' -f2) | |
| echo "Python version: $python_version" | |
| echo "version=$python_version" >> $GITHUB_ENV | |
| - name: Delete old cached file with same python version | |
| run: | | |
| echo "Current Cached files list" | |
| gh cache list | |
| echo "Deleting cached files with pattern: ${{ runner.os }}-venv-${{ env.version }}-" | |
| for cache_key in $(gh cache list --json key -q ".[] | select(.key | startswith(\"${{ runner.os }}-venv-${{ env.version }}-\")) | .key"); do | |
| echo "Deleting cache with key: $cache_key" | |
| gh cache delete "$cache_key" | |
| done | |
| # Update the matplotlib version if needed later | |
| - name: Set up virtual environment | |
| run: | | |
| python -m venv .venv-${{ env.version }} | |
| source .venv-${{ env.version }}/bin/activate | |
| python -m pip install --upgrade pip | |
| pip install -r devtools/dev-requirements.txt | |
| pip install matplotlib==3.10.8 | |
| - name: Cache Python environment | |
| id: cache-env | |
| uses: actions/cache@v5 | |
| with: | |
| path: .venv-${{ env.version }} | |
| key: ${{ runner.os }}-venv-${{ env.version }}-${{ hashFiles('devtools/dev-requirements.txt', 'requirements.txt') }} | |
| - name: Verify virtual environment activation | |
| run: | | |
| source .venv-${{ env.version }}/bin/activate | |
| which python | |
| python --version | |
| pip --version | |
| pip list |