From efb642c6233bcc6fa45ee1105a197e998779a843 Mon Sep 17 00:00:00 2001 From: Sven Boulanger Date: Sun, 1 Sep 2024 10:23:22 +0200 Subject: [PATCH] Setup github actions and use gitinfo (ref. Spice#) --- .github/workflows/publish-nuget.yml | 30 ++++++++++++++++++ .github/workflows/test-linux.yml | 31 +++++++++++++++++++ .github/workflows/test-macos.yml | 31 +++++++++++++++++++ .github/workflows/test-windows.yml | 31 +++++++++++++++++++ .../BSIM/CorrelatedNoiseThermal.cs | 3 ++ SpiceSharpBSIM/SpiceSharpBSIM.csproj | 16 ++++++++-- 6 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/publish-nuget.yml create mode 100644 .github/workflows/test-linux.yml create mode 100644 .github/workflows/test-macos.yml create mode 100644 .github/workflows/test-windows.yml diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml new file mode 100644 index 0000000..a7b1753 --- /dev/null +++ b/.github/workflows/publish-nuget.yml @@ -0,0 +1,30 @@ +name: Publish to NuGet + +on: + release: + branches: [ master ] + types: [ published ] + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@master + + - name: Setup dotnet tooling + uses: actions/setup-dotnet@master + with: + dotnet-version: '8.0.x' + + - name: Restore dependencies + run: dotnet restore + + - name: Compile Spice# + run: dotnet build SpiceSharpBSIM\SpiceSharpBSIM.csproj --configuration Release --no-restore + + - name: Publish to NuGet + env: + APIKEY: ${{ secrets.NUGET_APIKEY }} + run: dotnet nuget push ".\build\bin\SpiceSharpBSIM\SpiceSharpBSIM.*.nupkg" -k $env:APIKEY -s "https://api.nuget.org/v3/index.json" + diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml new file mode 100644 index 0000000..ae28439 --- /dev/null +++ b/.github/workflows/test-linux.yml @@ -0,0 +1,31 @@ +name: Linux Tests + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@master + + - name: Setup dotnet tooling + uses: actions/setup-dotnet@master + with: + dotnet-version: '8.0.x' + + - name: Restore dependencies + run: dotnet restore + + - name: Compile Spice#.BSIM + run: dotnet build SpiceSharpBSIM/SpiceSharpBSIM.csproj --configuration Debug --no-restore + + - name: Compile Spice#.BSIM.Tests + run: dotnet test SpiceSharpBSIMTests/SpiceSharpBSIMTests.csproj --configuration Debug --no-restore diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml new file mode 100644 index 0000000..ccb4617 --- /dev/null +++ b/.github/workflows/test-macos.yml @@ -0,0 +1,31 @@ +name: MacOS Tests + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + build: + runs-on: macos-latest + + steps: + - uses: actions/checkout@master + + - name: Setup dotnet tooling + uses: actions/setup-dotnet@master + with: + dotnet-version: '8.0.x' + + - name: Restore dependencies + run: dotnet restore + + - name: Compile Spice#.BSIM + run: dotnet build SpiceSharpBSIM/SpiceSharpBSIM.csproj --configuration Debug --no-restore + + - name: Compile Spice#.BSIM.Tests + run: dotnet test SpiceSharpBSIMTests/SpiceSharpBSIMTests.csproj --configuration Debug --no-restore diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml new file mode 100644 index 0000000..7720450 --- /dev/null +++ b/.github/workflows/test-windows.yml @@ -0,0 +1,31 @@ +name: Windows Tests + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@master + + - name: Setup dotnet tooling + uses: actions/setup-dotnet@master + with: + dotnet-version: '8.0.x' + + - name: Restore dependencies + run: dotnet restore + + - name: Compile Spice#.BSIM + run: dotnet build SpiceSharpBSIM/SpiceSharpBSIM.csproj --configuration Debug --no-restore + + - name: Compile Spice#.BSIM.Test + run: dotnet test SpiceSharpBSIMTests/SpiceSharpBSIMTests.csproj --configuration Debug --no-restore diff --git a/SpiceSharpBSIM/Components/Semiconductors/BSIM/CorrelatedNoiseThermal.cs b/SpiceSharpBSIM/Components/Semiconductors/BSIM/CorrelatedNoiseThermal.cs index 42ed218..43c0258 100644 --- a/SpiceSharpBSIM/Components/Semiconductors/BSIM/CorrelatedNoiseThermal.cs +++ b/SpiceSharpBSIM/Components/Semiconductors/BSIM/CorrelatedNoiseThermal.cs @@ -5,6 +5,9 @@ namespace SpiceSharpBSIM.Components.Semiconductors.BSIM { + /// + /// A class that describes correlated thermal noise between multiple ports. + /// public class CorrelatedNoiseThermal : NoiseSource { private IVariable _n1, _n2, _n3, _n4; diff --git a/SpiceSharpBSIM/SpiceSharpBSIM.csproj b/SpiceSharpBSIM/SpiceSharpBSIM.csproj index 2c32d2b..158bdef 100644 --- a/SpiceSharpBSIM/SpiceSharpBSIM.csproj +++ b/SpiceSharpBSIM/SpiceSharpBSIM.csproj @@ -1,24 +1,34 @@  + true + v* netstandard2.0 Spice#.BSIM Sven Boulanger https://github.com/SpiceSharp/SpiceSharpBSIM README.md https://github.com/SpiceSharp/SpiceSharpBSIM - 1.0.1 BSIM models for Spice#. - 1.0.1 logo_full.png git circuit electronics netlist spice simulator simulation ode solver design Refer to the GitHub release for release notes. en - 1.0.1 MIT + + true + ^(?:\w+-)?v?(?<MAJOR>\d+)\.(?<MINOR>\d+)\.(?<PATCH>\d+)$ + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + +