Add index size logging with per-contig statistics #82
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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' |