Skip to content

Add index size logging with per-contig statistics #82

Add index size logging with per-contig statistics

Add index size logging with per-contig statistics #82

Workflow file for this run

name: Build and ctest (with cache)
on:
push:
branches: [ main ]
paths:
- '.github/**'
- 'src/**'
- 'leviosam-test.py'
- 'CMakeLists.txt'
- 'CMakeLists.txt.in'
- 'testdata/**'
pull_request:
branches: [ main ]
paths:
- '.github/**'
- 'src/**'
- 'leviosam-test.py'
- 'CMakeLists.txt'
- 'CMakeLists.txt.in'
- 'testdata/**'
workflow_dispatch:
inputs:
test_level:
description: 'Test level to run'
required: true
default: 'smart'
type: choice
options:
- smart
- extended
- full
env:
BUILD_TYPE: Release
jobs:
# Setup job to define version lists
setup:
runs-on: ubuntu-latest
outputs:
all_versions: ${{ steps.versions.outputs.all }}
critical_versions: ${{ steps.versions.outputs.critical }}
extended_versions: ${{ steps.versions.outputs.extended }}
steps:
- name: Define version lists
id: versions
run: |
ALL_VERSIONS='["1.12", "1.19.1", "1.20", "1.21", "1.22.1"]'
CRITICAL_VERSIONS='["1.12", "1.22.1"]'
EXTENDED_VERSIONS='["1.19.1", "1.20", "1.21"]'
echo "all=$ALL_VERSIONS" >> $GITHUB_OUTPUT
echo "critical=$CRITICAL_VERSIONS" >> $GITHUB_OUTPUT
echo "extended=$EXTENDED_VERSIONS" >> $GITHUB_OUTPUT
# Critical matrix testing - tests edge cases and representative versions
critical_tests:
needs: setup
if: github.event_name == 'workflow_dispatch' && github.event.inputs.test_level == 'smart' || github.event_name != 'workflow_dispatch'
strategy:
matrix:
version: ${{ fromJSON(needs.setup.outputs.critical_versions) }} # Oldest and newest supported versions
os: ['ubuntu-latest']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-htslib
with:
version: ${{ matrix.version }}
cache-enabled: 'true'
- uses: ./.github/actions/build-test
with:
build-type: ${{ env.BUILD_TYPE }}
cache-enabled: 'true'
# Extended testing for PRs
extended_tests:
needs: setup
if: github.event_name == 'pull_request' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_level == 'extended')
strategy:
matrix:
# Representative middle versions
version: ${{ fromJSON(needs.setup.outputs.extended_versions) }}
os: ['ubuntu-22.04']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-htslib
with:
version: ${{ matrix.version }}
cache-enabled: 'true'
- uses: ./.github/actions/build-test
with:
build-type: ${{ env.BUILD_TYPE }}
cache-enabled: 'true'
# Full compatibility matrix - only for releases or manual trigger
full_tests:
needs: setup
if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_level == 'full')
strategy:
matrix:
# Test all supported versions
version: ${{ fromJSON(needs.setup.outputs.all_versions) }}
os: ['ubuntu-22.04', 'ubuntu-latest']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-htslib
with:
version: ${{ matrix.version }}
cache-enabled: 'true'
- uses: ./.github/actions/build-test
with:
build-type: ${{ env.BUILD_TYPE }}
cache-enabled: 'true'