Sequence-variant test corpus — an executable spec for variant × modification handling (L0) #3183
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 Test | |
| on: | |
| push: | |
| branches: [ master ] | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| build: | |
| runs-on: windows-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: 8.0.x | |
| - name: Restore dependencies | |
| run: cd mzLib && dotnet restore | |
| - name: Build | |
| run: cd mzLib && dotnet build --no-restore | |
| - name: Build (Test) | |
| run: cd mzLib && dotnet build --no-restore ./Test/Test.csproj | |
| - name: Add coverlet collector (Test) | |
| run: cd mzLib && dotnet add Test/Test.csproj package coverlet.collector -v 6.0.2 | |
| - name: Test | |
| # Exclude live external-service tests (Koina, etc.) from the required run; they run in the | |
| # separate, non-blocking external-service job below. ExternalService supersedes the old Koina filter. | |
| run: cd mzLib && dotnet test --no-build --verbosity normal --filter "Category!=ExternalService" --collect:"XPlat Code Coverage" /p:CoverletOutputFormat=cobertura ./Test/Test.csproj | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v4 | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| verbose: true | |
| files: mzLib/Test*/TestResults/*/coverage.cobertura.xml | |
| # Runs mzLib's live external-service tests (Koina). Intentionally NOT a required status check, so a | |
| # third-party outage never blocks a PR; the tests self-classify (outage -> Skipped, real break -> Fail). | |
| # Do NOT add this job to branch-protection required checks. | |
| external-service-tests: | |
| runs-on: windows-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: 8.0.x | |
| - name: Restore dependencies | |
| run: cd mzLib && dotnet restore | |
| - name: Build (Test) | |
| run: cd mzLib && dotnet build --no-restore ./Test/Test.csproj | |
| - name: Test (external services) | |
| run: cd mzLib && dotnet test --no-build --verbosity normal --filter "Category=ExternalService" ./Test/Test.csproj | |
| integration: | |
| runs-on: windows-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: 8.0.x | |
| - name: Restore dependencies | |
| run: cd mzLib && dotnet restore | |
| - name: Build | |
| run: cd mzLib && dotnet build --no-restore --configuration Release | |
| - name: Change mzLib version, pack, add source | |
| run: | | |
| cd mzLib; | |
| (Get-Content mzLib.nuspec) -replace "\<version\>(.*)\</version\>", "<version>9.9.9</version>" | Set-Content mzLib.nuspec; | |
| $mzlibMatch = Select-String -Path mzLib.nuspec -Pattern "(?<=\<version\>)(.*)(?=\</version)"; | |
| $mzlibVersion = $mzlibMatch.Matches[0].Value; | |
| echo "mzLib version number changed to: $mzlibVersion"; | |
| nuget pack; | |
| $currentFolder = pwd; | |
| dotnet nuget add source $currentFolder; | |
| dotnet nuget list source; | |
| - name: Clone MetaMorpheus | |
| uses: actions/checkout@master | |
| with: | |
| path: ./MetaMorpheus | |
| repository: smith-chem-wisc/MetaMorpheus | |
| ref: master | |
| - name: Change MetaMorpheus mzLib version and restore | |
| run: | | |
| cd ./MetaMorpheus/MetaMorpheus; | |
| dotnet remove CMD/CMD.csproj package mzLib; | |
| dotnet add CMD/CMD.csproj package mzLib -v 9.9.9; | |
| dotnet remove GUI/GUI.csproj package mzLib; | |
| dotnet add GUI/GUI.csproj package mzLib -v 9.9.9; | |
| dotnet remove GuiFunctions/GuiFunctions.csproj package mzLib; | |
| dotnet add GuiFunctions/GuiFunctions.csproj package mzLib -v 9.9.9; | |
| dotnet remove EngineLayer/EngineLayer.csproj package mzLib; | |
| dotnet add EngineLayer/EngineLayer.csproj package mzLib -v 9.9.9; | |
| dotnet remove Test/Test.csproj package mzLib; | |
| dotnet add Test/Test.csproj package mzLib -v 9.9.9; | |
| dotnet remove TaskLayer/TaskLayer.csproj package mzLib; | |
| dotnet add TaskLayer/TaskLayer.csproj package mzLib -v 9.9.9; | |
| dotnet restore; | |
| - name: Build MetaMorpheus | |
| run: cd ./MetaMorpheus/MetaMorpheus && dotnet build --no-restore | |
| - name: Test | |
| # Exclude live external-service tests from the MetaMorpheus integration run: they gate on third-party | |
| # services (UniProt, etc.), are not relevant to mzLib<->MetaMorpheus compatibility, and MetaMorpheus | |
| # exercises them in its own non-blocking job. This is what keeps a UniProt outage from reddening | |
| # every mzLib PR (this integration job clones MetaMorpheus master and runs its suite). | |
| run: cd ./MetaMorpheus/MetaMorpheus && dotnet test --no-build --verbosity normal --filter "Category!=ExternalService" | |
| - name: Upload artifact (installer) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: MetaMorpheusInstaller | |
| path: ./MetaMorpheus/MetaMorpheus/MetaMorpheusSetup/bin/Debug/MetaMorpheusInstaller.msi | |
| compression-level: 0 | |
| - name: Upload artifact (GUI) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: MetaMorpheusGUI | |
| path: ./MetaMorpheus/MetaMorpheus/GUI/bin/Debug/net8.0-windows/ | |