[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/CLIMADA-project/climada_python/develop/.github/workflows/ci.yml [Back]  [Original]

name: GitHub CI

# When to execute
on:
  push:
    # Pushes to important branches
    branches:
      - develop
      - main
    # Release tags
    tags:
      - v*
  # Any pull request
  pull_request:

# Use bash explicitly for being able to enter the conda environment
defaults:
  run:
    shell: bash -el {0}

jobs:
  build-and-test:
    name: 'Core / Unit Test Pipeline'
    runs-on: ubuntu-latest
    timeout-minutes: 20
    permissions:
      # For publishing results
      checks: write

    # Run this test for different Python versions
    strategy:
      # Do not abort other tests if only a single one fails
      fail-fast: false
      matrix:
        python-version: ["3.11", "3.12", "3.13"]

    steps:
      -
        name: Checkout Repo
        uses: actions/checkout@v6
      -
        # Store the current date to use it as cache key for the environment
        name: Get current date
        id: date
        run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
      -
        name: Create Environment with Mamba
        uses: mamba-org/setup-micromamba@v3
        with:
          environment-name: climada_env_${{ matrix.python-version }}
          environment-file: requirements/env_climada.yml
          create-args: >-
            python=${{ matrix.python-version }}
            make
          # Persist environment for branch, Python version, single day
          cache-environment-key: env-${{ github.ref }}-${{ matrix.python-version }}-${{ steps.date.outputs.date }}
      -
        name: Install CLIMADA
        run: |
          python -m pip install "./[dev]"
      -
        name: Run Unit Tests
        run: |
          make unit_test
      -
        name: Publish Test Results
        uses: EnricoMi/publish-unit-test-result-action@v2
        if: always()
        with:
          junit_files: tests_xml/tests.xml
          check_name: "Core / Unit Test Results (${{ matrix.python-version }})"
          comment_mode: "off"
      -
        name: Upload Coverage Reports
        if: always()
        uses: actions/upload-artifact@v7
        with:
          name: coverage-report-core-unittests-py${{ matrix.python-version }}
          path: coverage/

  test-petals:
    name: Petals Compatibility
    uses: CLIMADA-project/climada_petals/.github/workflows/testing.yml@develop
    needs: build-and-test
    with:
      core_branch: ${{ github.ref }}
      petals_branch: develop
    permissions:
      checks: write

Web Proxy Viewer  |  New URL  |  Original Page