pipeline { agent any stages { stage("Props.Shop") { stages { stage("Restore") { steps { dotnetRestore project: "Props.Shop/Props.Shop.sln" dotnetRestore project: "Props.Shop/Props.Shop.Tests.sln" } } stage("Test") { steps { dotnetTest noRestore: true, project: "Props.Shop/Props.Shop.Tests.sln", unstableIfErrors: true, unstableIfWarnings: true } } stage("Publish") { steps { dotnetPublish configuration: 'Release', noRestore: true, project: 'Props.Shop/Props.Shop.sln', selfContained: false, unstableIfWarnings: true archiveArtifacts artifacts: 'Props.Shop/**/bin/Release/**/publish/Props.Shop.*', excludes: 'Props.Shop/*.Tests/**/*, Props.Shop/Framework/**/*', fingerprint: true, followSymlinks: false, onlyIfSuccessful: true archiveArtifacts artifacts: 'Props.Shop/Framework/bin/Release/**/publish/Props.Shop.Framework.*', fingerprint: true, followSymlinks: false, onlyIfSuccessful: true sh "python3 scripts/load_shop_modules.py" } } } } stage("Props") { stages { stage("Restore") { steps { dotnetRestore project: "Props" dotnetRestore project: "Props.Tests" } } stage("Test") { steps { dotnetTest noRestore: true, project: "Props.Tests", unstableIfErrors: true, unstableIfWarnings: true } } stage("Publish") { steps { dotnetPublish configuration: 'Release', noRestore: true, project: 'Props', sdk: 'Default .NET SDK' archiveArtifacts artifacts: 'Props/bin/Release/**/publish/Props*', excludes: 'Props/bin/Release/**/publish/Props.Shop.Framework.*', fingerprint: true, followSymlinks: false, onlyIfSuccessful: true } } } } stage("cleanup") { steps { dotnetClean project: 'Props/', sdk: 'Default .NET SDK' dotnetClean project: 'Props.Tests/', sdk: 'Default .NET SDK' dotnetClean project: 'Props.Shop/Props.Shop.sln', sdk: 'Default .NET SDK' dotnetClean project: 'Props.Shop/Props.Shop.Tests.sln', sdk: 'Default .NET SDK' cleanWs(patterns: [[pattern: '**/bin/Release', type: 'INCLUDE']]) } } } }