# SPDX-FileCopyrightText: : 2021-2024 The PyPSA-Eur Authors # # SPDX-License-Identifier: CC0-1.0 name: CI # Caching method based on and described by: # epassaro (2021): https://dev.to/epassaro/caching-anaconda-environments-in-github-actions-5hde # and code in GitHub repo: https://github.com/epassaro/cache-conda-envs on: push: branches: - master pull_request: branches: - master schedule: - cron: "0 5 * * TUE" env: DATA_CACHE_NUMBER: 1 jobs: build: strategy: fail-fast: false max-parallel: 3 matrix: os: - ubuntu-latest - macos-latest - windows-latest inhouse: - stable - master exclude: - os: macos-latest inhouse: master - os: windows-latest inhouse: master runs-on: ${{ matrix.os }} defaults: run: shell: bash -l {0} steps: - uses: actions/checkout@v3 - name: Setup secrets run: | echo -ne "url: ${CDSAPI_URL}\nkey: ${CDSAPI_TOKEN}\n" > ~/.cdsapirc - name: Setup micromamba uses: mamba-org/setup-micromamba@v1 with: micromamba-version: latest environment-file: envs/environment.yaml log-level: debug init-shell: bash cache-environment: true cache-downloads: true - name: Install inhouse packages run: | pip install git+https://github.com/PyPSA/atlite.git@master git+https://github.com/PyPSA/powerplantmatching.git@master git+https://github.com/PyPSA/linopy.git@master if: ${{ matrix.inhouse }} == 'master' - name: Set cache dates run: | echo "WEEK=$(date +'%Y%U')" >> $GITHUB_ENV - name: Cache data and cutouts folders uses: actions/cache@v3 with: path: | data cutouts key: data-cutouts-${{ env.WEEK }}-${{ env.DATA_CACHE_NUMBER }} - name: Test snakemake workflow run: ./test.sh - name: Upload artifacts uses: actions/upload-artifact@v4.3.0 with: name: resources-results path: | resources results if-no-files-found: warn retention-days: 1 if: matrix.os == 'ubuntu' && matrix.inhouse == 'stable'