diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..51c870e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,67 @@ +name: CI + +on: + # workflow_dispatch: + + # push: + # branches: [ master ] + pull_request: + branches: [ master ] + +permissions: + contents: read + packages: write + +env: + DOTNET_VERSION: "10.0.x" + NODE_VERSION: "20" + +jobs: + test: + name: Test + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Full history for better analysis + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: ~/.nuget/packages + key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }} + + - name: Restore dependencies + run: dotnet restore + + - name: Build project + run: dotnet build --no-restore --configuration Release + + - name: Run unit tests + run: dotnet test --no-build --verbosity normal --configuration Release /p:CollectCoverage=true /p:Threshold=50 /p:ThresholdType=line /p:ThresholdStat=Average /p:CoverletOutput=./TestResults/ /p:ExcludeByAttribute="GeneratedCodeAttribute" + + publish-github-packages: + name: Publish to GitHub Packages + runs-on: ubuntu-latest + needs: test + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + - name: Publish to GitHub Packages + run: | + dotnet pack --configuration Release --no-build -o ./nupkg + dotnet nuget push ./nupkg/*.nupkg --source "github" --api-key ${{ secrets.GITHUB_TOKEN }} + env: + NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs b/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs index 88c84b7..24a11b4 100644 --- a/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs +++ b/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs @@ -526,21 +526,21 @@ public void SetName_ThrowsExceptionWhenInstanceAlreadyHasName() } } - //[Fact] - //public void ReportError_AddsErrorToList() - //{ - // // Arrange - // var manager = (IDesignerSerializationManager)new DesignerSerializationManager(); - - // // Act & Assert - // using (((DesignerSerializationManager)manager).CreateSession()) - // { - // var error = "Test error"; - // manager.ReportError(error); - // var errors = ((DesignerSerializationManager)manager).Errors; - // Assert.Contains(error, errors); - // } - //} + [Fact] + public void ReportError_AddsErrorToList() + { + // Arrange + var manager = (IDesignerSerializationManager)new DesignerSerializationManager(); + + // Act & Assert + using (((DesignerSerializationManager)manager).CreateSession()) + { + var error = "Test error"; + manager.ReportError(error); + var errors = ((DesignerSerializationManager)manager).Errors.OfType(); + Assert.Contains(error, errors); + } + } [Fact] public void ReportError_ThrowsExceptionOutsideSession() diff --git a/LogicBuilder.ComponentModel.Design.Serialization.Tests/LogicBuilder.ComponentModel.Design.Serialization.Tests.csproj b/LogicBuilder.ComponentModel.Design.Serialization.Tests/LogicBuilder.ComponentModel.Design.Serialization.Tests.csproj index 0cd57e7..109544f 100644 --- a/LogicBuilder.ComponentModel.Design.Serialization.Tests/LogicBuilder.ComponentModel.Design.Serialization.Tests.csproj +++ b/LogicBuilder.ComponentModel.Design.Serialization.Tests/LogicBuilder.ComponentModel.Design.Serialization.Tests.csproj @@ -10,10 +10,16 @@ - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/LogicBuilder.ComponentModel.Design.Serialization.slnx b/LogicBuilder.ComponentModel.Design.Serialization.slnx index dcc344f..d724b77 100644 --- a/LogicBuilder.ComponentModel.Design.Serialization.slnx +++ b/LogicBuilder.ComponentModel.Design.Serialization.slnx @@ -1,5 +1,6 @@ +