Skip to content

Commit

Permalink
Experimental fast tests
Browse files Browse the repository at this point in the history
  • Loading branch information
atharva-2001 committed Jul 14, 2024
1 parent 6a93d2d commit 070e2c6
Show file tree
Hide file tree
Showing 4 changed files with 306 additions and 212 deletions.
94 changes: 94 additions & 0 deletions .github/workflows/fast_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# For more information about TARDIS pipelines, please refer to:
#
# https://tardis-sn.github.io/tardis/development/continuous_integration.html

name: fast tests

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
types:
- opened
- reopened
- synchronize
- labeled


env:
CACHE_NUMBER: 0 # increase to reset cache manually
PYTEST_FLAGS: --tardis-refdata=${{ github.workspace }}/tardis-refdata --tardis-regression-data=${{ github.workspace }}/tardis-regression-data
--cov=tardis --cov-report=xml --cov-report=html
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

defaults:
run:
shell: bash -l {0}

jobs:
test-matrix:
runs-on: ubuntu-latest
steps:
- id: set-matrix
run: |
sudo apt-get install jq
echo 'folder-matrix=$(find "tardis" -mindepth 1 -maxdepth 1 -type d | grep -v '__pycache__' | jq -R . | jq -cs .)' >> "$GITHUB_OUTPUT"
echo 'os-matrix=["ubuntu-latest", "macos-latest"]' >> "$GITHUB_OUTPUT"
outputs:
folder-matrix: ${{ steps.set-matrix.outputs.folder-matrix }}
os-matrix: ${{ steps.set-matrix.outputs.os-matrix }}

non-continuum:
needs: test-matrix
strategy:
matrix:
test-path: ${{fromJson(needs.test-matrix.outputs.folder-matrix)}}
os: ${{fromJson(needs.test-matrix.outputs.os-matrix)}}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3

- name: Setup tardis
uses: ./.github/actions/setup_tardis
with:
os-label: ${{ matrix.os=='macos-latest' && 'osx-arm64' || 'linux-64' }}

- name: Install package editable
run: |
pip install -e .
- name: Run tests
run: pytest ${{ matrix.test-path }} ${{ env.PYTEST_FLAGS }} -m "not continuum"

- name: Refdata Generation tests
run: pytest ${{ matrix.test-path }} ${{ env.PYTEST_FLAGS }} --generate-reference
if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master'

continuum_tests:
needs: test-matrix
strategy:
matrix:
test-path: ${{fromJson(needs.test-matrix.outputs.folder-matrix)}}
os: ${{fromJson(needs.test-matrix.outputs.os-matrix)}}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3

- name: Setup tardis
uses: ./.github/actions/setup_tardis
with:
os-label: ${{ matrix.os=='macos-latest' && 'osx-arm64' || 'linux-64' }}

- name: Install package editable
run: |
pip install -e .
- name: Run continuum tests
run: pytest ${{ matrix.test-path }} ${{ env.PYTEST_FLAGS }} -m continuum

- name: Refdata Generation tests
run: pytest ${{ matrix.test-path }} ${{ env.PYTEST_FLAGS }} --generate-reference
if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master'
64 changes: 32 additions & 32 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
name: main
# name: main

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
# on:
# push:
# branches:
# - '*'
# pull_request:
# branches:
# - '*'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
# concurrency:
# group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
# cancel-in-progress: true


jobs:
matrix:
if: github.repository_owner == 'tardis-sn'
strategy:
# super important if you want to see all results, even if one fails
# fail-fast is true by default
fail-fast: false
matrix:
label: [osx-arm64, linux-64]
include:
- label: osx-arm64
os: macos-latest
prefix: /Users/runner/miniconda3/envs/tardis
# jobs:
# matrix:
# if: github.repository_owner == 'tardis-sn'
# strategy:
# # super important if you want to see all results, even if one fails
# # fail-fast is true by default
# fail-fast: false
# matrix:
# label: [osx-arm64, linux-64]
# 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
# - label: linux-64
# os: ubuntu-latest
# prefix: /usr/share/miniconda3/envs/tardis

uses: ./.github/workflows/new_tests.yml
with:
run_label: ${{ matrix.label }}
run_os: ${{ matrix.os }}
secrets: inherit
# uses: ./.github/workflows/new_tests.yml
# with:
# run_label: ${{ matrix.label }}
# run_os: ${{ matrix.os }}
# secrets: inherit
166 changes: 83 additions & 83 deletions .github/workflows/new_tests.yml
Original file line number Diff line number Diff line change
@@ -1,101 +1,101 @@
# For more information about TARDIS pipelines, please refer to:
#
# https://tardis-sn.github.io/tardis/development/continuous_integration.html
# # For more information about TARDIS pipelines, please refer to:
# #
# # https://tardis-sn.github.io/tardis/development/continuous_integration.html

name: tests
# name: tests

on:
workflow_call:
inputs:
run_label:
required: true
type: string
run_os:
required: true
type: string
# on:
# workflow_call:
# inputs:
# run_label:
# required: true
# type: string
# run_os:
# required: true
# type: string

# push:
# branches:
# - '*'
# # push:
# # branches:
# # - '*'

# pull_request:
# branches:
# - '*'
# # pull_request:
# # branches:
# # - '*'

# types:
# - opened
# - reopened
# - synchronize
# - labeled
# # types:
# # - opened
# # - reopened
# # - synchronize
# # - labeled

env:
CACHE_NUMBER: 0 # increase to reset cache manually
PYTEST_FLAGS: --tardis-refdata=${{ github.workspace }}/tardis-refdata --tardis-regression-data=${{ github.workspace }}/tardis-regression-data
--cov=tardis --cov-report=xml --cov-report=html
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# env:
# CACHE_NUMBER: 0 # increase to reset cache manually
# PYTEST_FLAGS: --tardis-refdata=${{ github.workspace }}/tardis-refdata --tardis-regression-data=${{ github.workspace }}/tardis-regression-data
# --cov=tardis --cov-report=xml --cov-report=html
# CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

defaults:
run:
shell: bash -l {0}
# defaults:
# run:
# shell: bash -l {0}

jobs:
base:
name: base-${{ inputs.run_label }}
runs-on: ${{ inputs.run_os }}
steps:
- uses: actions/checkout@v4
- uses: actions/upload-artifact@v4
with:
name: tardis-repo-${{ inputs.run_label }}
path: ./
retention-days: 1
# jobs:
# test-matrix:
# name: base-${{ inputs.run_label }}
# runs-on: ${{ inputs.run_os }}
# steps:
# - uses: actions/checkout@v3
# - uses: actions/upload-artifact@v4
# with:
# name: tardis-repo-${{ inputs.run_label }}
# path: ./
# retention-days: 1

non-continuum:
runs-on: ${{ inputs.run_os }}
needs: base
steps:
- uses: actions/download-artifact@v4
with:
name: tardis-repo-${{ inputs.run_label }}
path: ./
# non-continuum:
# runs-on: ${{ inputs.run_os }}
# needs: test-matrix
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: tardis-repo-${{ inputs.run_label }}
# path: ./

- name: Setup tardis
uses: ./.github/actions/setup_tardis
with:
os-label: ${{ inputs.run_label }}
# - name: Setup tardis
# uses: ./.github/actions/setup_tardis
# with:
# os-label: ${{ inputs.run_label }}

- name: Install package editable
run: |
pip install -e . --user
# - name: Install package editable
# run: |
# pip install -e . --user

- name: Run tests
run: pytest tardis ${{ env.PYTEST_FLAGS }} -m "not continuum"
# - name: Run tests
# run: pytest tardis ${{ env.PYTEST_FLAGS }} -m "not continuum"

- name: Refdata Generation tests
run: pytest tardis ${{ env.PYTEST_FLAGS }} --generate-reference
if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master'
# - name: Refdata Generation tests
# run: pytest tardis ${{ env.PYTEST_FLAGS }} --generate-reference
# if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master'

continuum_tests:
needs: base
runs-on: ${{ inputs.run_label }}
steps:
- uses: actions/download-artifact@v4
with:
name: tardis-repo-${{ inputs.run_label }}
path: ./
# continuum_tests:
# needs: test-matrix
# runs-on: ${{ inputs.run_label }}
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: tardis-repo-${{ inputs.run_label }}
# path: ./

- name: Setup tardis
uses: ./.github/actions/setup_tardis
with:
os-label: ${{ inputs.run_label }}
# - name: Setup tardis
# uses: ./.github/actions/setup_tardis
# with:
# os-label: ${{ inputs.run_label }}

- name: Install package editable
run: |
pip install -e .
# - name: Install package editable
# run: |
# pip install -e .

- name: Run continuum tests
run: pytest tardis ${{ env.PYTEST_FLAGS }} -m continuum
# - name: Run continuum tests
# run: pytest tardis ${{ env.PYTEST_FLAGS }} -m continuum

- name: Refdata Generation tests
run: pytest tardis ${{ env.PYTEST_FLAGS }} --generate-reference
if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master'
# - name: Refdata Generation tests
# run: pytest tardis ${{ env.PYTEST_FLAGS }} --generate-reference
# if: contains(github.event.pull_request.labels.*.name, 'run-generation-tests') || github.ref == 'refs/heads/master'
Loading

0 comments on commit 070e2c6

Please sign in to comment.