Skip to content

feat: ProForma 2.0 reader/writer and Layer-2 modification converter #3200

feat: ProForma 2.0 reader/writer and Layer-2 modification converter

feat: ProForma 2.0 reader/writer and Layer-2 modification converter #3200

Workflow file for this run

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/