CI-linux #1331
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
# SPDX-FileCopyrightText: : 2022 The PyPSA-meets-Africa Authors | |
# | |
# SPDX-License-Identifier: CC0-1.0 | |
name: CI-linux | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
schedule: | |
- cron: "0 5 * * TUE" | |
env: | |
CACHE_NUMBER: 1 # Change this value to manually reset the environment cache | |
jobs: | |
build: | |
strategy: | |
fail-fast: false # don't break CI for ubuntu if windows fails before | |
matrix: | |
include: | |
# Matrix required to handle environment caching with Mambaforge | |
- os: ubuntu-latest | |
label: ubuntu-latest | |
prefix: /usr/share/miniconda3/envs/pypsa-earth | |
name: ${{ matrix.label }} | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fill submodule | |
run: | | |
git submodule update --init | |
- name: Copy environment file | |
run: | | |
cp ./pypsa-earth/envs/environment.yaml environment.yaml | |
- name: Setup Mambaforge | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
miniforge-variant: Mambaforge | |
miniforge-version: latest | |
activate-environment: pypsa-earth | |
use-mamba: true | |
- name: Create environment cache | |
uses: actions/cache@v2 | |
id: cache | |
with: | |
path: ${{ matrix.prefix }} | |
key: ${{ matrix.label }}--conda-${{ hashFiles('environment.yaml') }}-${{ env.DATE }}-${{ env.CACHE_NUMBER }} | |
- name: Update environment due to outdated or unavailable cache | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: mamba env update -n pypsa-earth -f environment.yaml | |
- name: Test snakemake workflow | |
run: | | |
conda list | |
snakemake --cores all run_test | |
# - name: Test plotting and summaries | |
# run: | | |
# snakemake --cores all plot_all_p_nom | |
# snakemake --cores all plot_all_summaries | |
# snakemake --cores all make_all_summaries | |
# rm -rf resources/*.nc resources/*.geojson resources/*.h5 networks results |