Skip to content

Modifying tests for testing #1087

Modifying tests for testing

Modifying tests for testing #1087

Workflow file for this run

# For more information about TARDIS pipelines, please refer to:
#
# https://tardis-sn.github.io/tardis/development/continuous_integration.html
name: tests
on:
push:
branches:
- update_numpy_v2
# 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
permissions:
contents: write
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:
permissions:
contents: write
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/spectrum/tests/test_spectrum_solver.py ${{ 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'
# New steps to commit and push changes
- name: Configure Git
# if: github.event_name == 'pull_request'
shell: bash
run: |
cd tardis-regression-data
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
# git config user.name "GitHub Actions Bot"
# git config user.email "actions@github.com"
- name: Create and checkout new branch
shell: bash
run: |
cd tardis-regression-data
PR_NUMBER="$(( $RANDOM % 1000 + 1 ))" # Generate random number between 1-1000
BRANCH_NAME="pr-${PR_NUMBER}-regression-data"
git checkout -b $BRANCH_NAME
# Store PR_NUMBER for next step
echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV
- name: Commit and push changes
shell: bash
run: |
cd tardis-regression-data
BRANCH_NAME="pr-${PR_NUMBER}-regression-data"
if [[ -n $(git status --porcelain) ]]; then
git add .
git commit -m "Update regression data for branch ${BRANCH_NAME}"
git push origin $BRANCH_NAME
else
echo "No changes to commit"
fi
# - 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