diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c22254b1b51..7513c56e9d5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,132 +1,132 @@ -# # For more information about TARDIS pipelines, please refer to: -# # -# # https://tardis-sn.github.io/tardis/development/continuous_integration.html - -# name: tests - -# on: -# push: -# branches: -# - master -# pull_request: -# branches: -# - master -# types: -# - opened -# - reopened -# - synchronize - -# workflow_call: -# inputs: -# pip_git: -# description: "Whether or not to install tardis using git" -# required: false -# type: boolean -# default: false - -# env: -# CACHE_NUMBER: 0 # increase to reset cache manually -# PYTEST_FLAGS: --tardis-regression-data=${{ github.workspace }}/tardis-regression-data --cov=tardis --cov-report=xml --cov-report=html --cov-append -# CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - -# defaults: -# run: -# shell: bash -l {0} - -# concurrency: -# group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} -# cancel-in-progress: true - -# jobs: -# tests: -# name: ${{ matrix.continuum }} continuum ${{ matrix.os }} ${{ inputs.pip_git && 'pip tests enabled' || '' }} -# if: github.repository_owner == 'tardis-sn' -# runs-on: ${{ matrix.os }} -# strategy: -# fail-fast: false -# matrix: -# label: [osx-arm64, linux-64] -# continuum: ['not', ''] -# include: -# - label: osx-arm64 -# os: macos-latest -# prefix: /Users/runner/miniconda3/envs/tardis - -# - label: linux-64 -# os: ubuntu-latest -# prefix: /usr/share/miniconda3/envs/tardis -# steps: -# - uses: actions/checkout@v4 - -# - name: Setup LFS -# uses: ./.github/actions/setup_lfs - -# - name: Setup environment -# uses: ./.github/actions/setup_env -# with: -# os-label: ${{ matrix.label }} - -# - name: Install package editable -# if: ${{ !inputs.pip_git }} -# run: | -# pip install -e . --user - -# - name: Install package git -# if: ${{ inputs.pip_git }} -# run: | -# pip install git+https://github.com/tardis-sn/tardis.git@master - -# - name: Install qgridnext -# if: ${{ !inputs.pip_git }} -# run: | -# pip install qgridnext - -# - name: Run tests -# run: pytest tardis ${{ env.PYTEST_FLAGS }} -m "${{ matrix.continuum }} continuum" - -# - name: Regression Data Generation tests -# run: pytest tardis ${{ env.PYTEST_FLAGS }} --generate-reference -m "${{ matrix.continuum }} continuum" -# if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master' - -# - run: mv .coverage .coverage.${{ strategy.job-index }} - -# - uses: actions/upload-artifact@v4 -# with: -# name: coverage-${{ matrix.continuum }}-continuum-${{ matrix.os }} -# include-hidden-files: true -# path: | -# .coverage* -# !.coveragerc - -# combine_coverage_reports: -# needs: [tests] -# if: github.repository_owner == 'tardis-sn' -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v4 -# - name: Setup environment -# uses: ./.github/actions/setup_env -# with: -# os-label: linux-64 - -# # will download all artifacts(in this case all are coverage reports) -# - uses: actions/download-artifact@v4 -# with: -# path: . -# merge-multiple: true - -# - name: Combine coverage reports -# run: | -# coverage combine -# coverage xml -# coverage html - -# - name: Print report -# run: coverage report - -# - uses: codecov/codecov-action@v4 -# if: always() -# with: -# fail_ci_if_error: true -# token: ${{ secrets.CODECOV_TOKEN }} -# verbose: true +# For more information about TARDIS pipelines, please refer to: +# +# https://tardis-sn.github.io/tardis/development/continuous_integration.html + +name: tests + +on: + push: + branches: + - master + pull_request: + branches: + - master + types: + - opened + - reopened + - synchronize + + workflow_call: + inputs: + pip_git: + description: "Whether or not to install tardis using git" + required: false + type: boolean + default: false + +env: + CACHE_NUMBER: 0 # increase to reset cache manually + PYTEST_FLAGS: --tardis-regression-data=${{ github.workspace }}/tardis-regression-data --cov=tardis --cov-report=xml --cov-report=html --cov-append + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + +defaults: + run: + shell: bash -l {0} + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + tests: + name: ${{ matrix.continuum }} continuum ${{ matrix.os }} ${{ inputs.pip_git && 'pip tests enabled' || '' }} + if: github.repository_owner == 'tardis-sn' + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + label: [osx-arm64, linux-64] + continuum: ['not', ''] + include: + - label: osx-arm64 + os: macos-latest + prefix: /Users/runner/miniconda3/envs/tardis + + - label: linux-64 + os: ubuntu-latest + prefix: /usr/share/miniconda3/envs/tardis + steps: + - uses: actions/checkout@v4 + + - name: Setup LFS + uses: ./.github/actions/setup_lfs + + - name: Setup environment + uses: ./.github/actions/setup_env + with: + os-label: ${{ matrix.label }} + + - name: Install package editable + if: ${{ !inputs.pip_git }} + run: | + pip install -e . --user + + - name: Install package git + if: ${{ inputs.pip_git }} + run: | + pip install git+https://github.com/tardis-sn/tardis.git@master + + - name: Install qgridnext + if: ${{ !inputs.pip_git }} + run: | + pip install qgridnext + + - name: Run tests + run: pytest tardis ${{ env.PYTEST_FLAGS }} -m "${{ matrix.continuum }} continuum" + + - name: Regression Data Generation tests + run: pytest tardis ${{ env.PYTEST_FLAGS }} --generate-reference -m "${{ matrix.continuum }} continuum" + if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master' + + - run: mv .coverage .coverage.${{ strategy.job-index }} + + - uses: actions/upload-artifact@v4 + with: + name: coverage-${{ matrix.continuum }}-continuum-${{ matrix.os }} + include-hidden-files: true + path: | + .coverage* + !.coveragerc + + combine_coverage_reports: + needs: [tests] + if: github.repository_owner == 'tardis-sn' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup environment + uses: ./.github/actions/setup_env + with: + os-label: linux-64 + + # will download all artifacts(in this case all are coverage reports) + - uses: actions/download-artifact@v4 + with: + path: . + merge-multiple: true + + - name: Combine coverage reports + run: | + coverage combine + coverage xml + coverage html + + - name: Print report + run: coverage report + + - uses: codecov/codecov-action@v4 + if: always() + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} + verbose: true