diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..abfe972 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,34 @@ +name: CI + +on: + push: + branches: + - master + - develop + - feature/** + pull_request: + branches: + - master + - develop + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + + - name: Restore + run: dotnet restore TaskPipeline.sln + + - name: Build + run: dotnet build TaskPipeline.sln --configuration Release --no-restore + + - name: Test + run: dotnet test TaskPipeline.sln --configuration Release --no-build --verbosity normal \ No newline at end of file diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml new file mode 100644 index 0000000..873eb3a --- /dev/null +++ b/.github/workflows/publish-nuget.yml @@ -0,0 +1,37 @@ +name: Publish NuGet + +on: + push: + branches: + - master + +permissions: + contents: read + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + + - name: Restore + run: dotnet restore TaskPipeline.sln + + - name: Build + run: dotnet build TaskPipeline.sln --configuration Release --no-restore + + - name: Test + run: dotnet test TaskPipeline.sln --configuration Release --no-build --verbosity normal + + - name: Pack + run: dotnet pack src/TaskPipeline/TaskPipeline.csproj --configuration Release --no-build --output ./artifacts + + - name: Publish to NuGet + run: dotnet nuget push "./artifacts/*.nupkg" --api-key "${{ secrets.NUGET_API_KEY }}" --source "https://api.nuget.org/v3/index.json" --skip-duplicate \ No newline at end of file diff --git a/COMMIT_MESSAGE.txt b/COMMIT_MESSAGE.txt deleted file mode 100644 index 0256f6c..0000000 --- a/COMMIT_MESSAGE.txt +++ /dev/null @@ -1,10 +0,0 @@ -feat: rewrite TaskPipeline as modern cross-platform v2 - -- migrate library to net8.0 with optional netstandard2.1 support -- introduce typed async pipeline abstractions and fluent builder -- add cancellation support and structured execution results -- replace dictionary-based execution model with ordered step descriptors -- improve exception handling with step metadata preservation -- keep legacy pipeline contracts and implementations for compatibility -- refresh NUnit test suite for both legacy and modern APIs -- update README with new architecture and roadmap diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 2455796..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,12 +0,0 @@ -node { - stage 'Checkout' - checkout scm - - stage 'Build' - bat "\"dotnet\" restore \"${workspace}/TaskPipeline.sln\"" - bat "\"dotnet\" build \"${workspace}/TaskPipeline.sln\"" - - stage 'UnitTests' - bat returnStatus: true, script: "\"dotnet\" test \"${workspace}/TaskPipeline.sln\" --logger \"trx;LogFileName=unit_tests.xml\" --no-build" - step([$class: 'MSTestPublisher', testResultsFile:"**/unit_tests.xml", failOnError: true, keepLongStdio: true]) -} \ No newline at end of file diff --git a/TaskPipeline.sln.DotSettings.user b/TaskPipeline.sln.DotSettings.user deleted file mode 100644 index 25495d7..0000000 --- a/TaskPipeline.sln.DotSettings.user +++ /dev/null @@ -1,4 +0,0 @@ - - <SessionState ContinuousTestingMode="0" Name="All tests from &lt;tests&gt;\&lt;TestPipeline&gt;" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> - <Project Location="D:\Projects\TaskPipeline\tests\TestPipeline" Presentation="&lt;tests&gt;\&lt;TestPipeline&gt;" /> -</SessionState> \ No newline at end of file diff --git a/tasks-pipeline.svg b/tasks-pipeline.svg deleted file mode 100644 index 9863fa5..0000000 --- a/tasks-pipeline.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - Item 1 - - - - - Item 2 - - - - - Item ... - - - - - - - - - - - - - - - - - - Some data - - - - - ExecuteItem - - - - - Error - - - - - Success - - - - - Continue - - - - - - CanExecute - - - - - - - - - - - - - - - - - - - - - - - - Single item - - - Pipeline - -