Git Product home page Git Product logo

pipelines's Introduction

Pipelines

Introduction

Provides a non-HTTP pipeline similar to the ASP.NET Core request pipeline.

MyTrout.Pipelines targets .NET 6.0

If three steps named M1, M2, and M3 were added to the Pipeline, here is the execution path for the code.

The Pipeline automatically adds the NoOpStep as the last step in the Pipeline.

BREAKING CHANGES INTRODUCED WITH 4.0.0

See Breaking Changes for 4.0.0

Installing via NuGet

Install-Package MyTrout.Pipelines

Software dependencies

1. Microsoft.Extensions.Configuration.Abstractions 6.0.0
2. Microsoft.Extensions.Configuration.Binder 6.0.0
3. Microsoft.Extensions.DependencyInjection.Abstractions 6.0.0
4. Microsoft.Extensions.Logging.Abstractions 6.0.0

All software dependencies listed above use the MIT License.

How do I use Pipelines?

Please refer to the Pipelines.Core for details on the basics of how to use Pipelines.

How do I write Steps?

Please refer to the Steps for more details on how to write steps.

How do I use Pipelines with Console Applications / Generic Host?

Please refer to the Pipeline.Hosting for more details on how to use Pipelines with Console applications.

Build the software locally.

1. Clone the software from the Pipelines repository.
2. Build the software in Visual Studio 2022 v17.0 or higher to pull down all of the dependencies from nuget.org.
3. In Visual Studio, run all tests.  All of the should pass.
4. If you have Visual Studio Enterprise 2022, analyze the code coverage; it should be 100%.

Build the software in Github

TODO ->

pipelines's People

Contributors

simkin2004 avatar dependabot[bot] avatar trout2 avatar

Stargazers

 avatar Ioan Rîpan avatar

Watchers

 avatar

Forkers

bubdm

pipelines's Issues

Correct build badges for Pipeline components.

The following components still point to Azure DevOps:
MyTrout.Pipelines.Steps.Azure.ServiceBus

The following components have a broken link for the build badge:
MyTrout.Pipelines.Steps.Cryptography

Write a workflow that will upgrade all projects, unit tests and versioning for .NET 7.0.0-preview.1.

  • src/*.csproj files should add the .net 7.0 preview to the already existing .NET 6.0 projects.
  • test/*csproj files should run both .NET 6.0 and .NET 7.0-preview instances of the projects.
  • changelog.md should add the new version at the top of the file with a description of the changes in the new version.
  • readme.md files should be upgraded to reflect that .NET 5.0, .NET 6.0 and .NET 7.0 are supported.
  • .github/workflows/*.yaml should include .NET 7.0 in the installation step for .NET SDKs.
  • .github/workflows/*.yaml should include "include-prerelease: true" parameter in the installation step for .NET SDKs.
  • .github/workflows/*.yaml should add the suffix matching the .NET 7.0 version (such as -preview.1)
  • .github/workflows/*.yaml should add update the minor version +1 to reflect that new changes are included with the inclusion of .NET 7.0-preview.1 binaries.

Write a workflow that will change preview support to fully-released support for all projects, unit tests and versioning for .NET 7.0 when is finally released.

  • src/*.csproj files should add the .net 7.0 non-preview version to the already existing .NET 6.0 projects.
  • src/*.csproj files should remove all .net 7.0 preview versions from the already existing .NET 6.0 projects.
  • test/*csproj files should run both .NET 6.0 and .NET 7.0 non-preview instances of the projects.
  • changelog.md should add the new version at the top of the file with a description of the changes in the new version.
  • readme.md files should be upgraded to reflect that .NET 6.0 and .NET 7.0 non-preview are supported.
  • .github/workflows/*.yaml should include .NET 7.0 non-preview in the installation step for .NET SDKs.
  • .github/workflows/*.yaml should set "include-prerelease: false" parameter in the installation step for .NET SDKs.
  • .github/workflows/*.yaml should remove any suffix associated with the .NET 7.0 version.
  • .github/workflows/*.yaml should update the minor version +1 to reflect that new changes are included with the inclusion of .NET 7.0 binaries.

Update all builds with if-no-files-found on the Upload NuPkg step.

See this location https://github.com/actions/upload-artifact for more details...

New version should look like this:
- name: Upload nupkg
uses: actions/upload-artifact@v2
with:
name: nupkg
path: ${{ env.WORKING_DIRECTORY }}/**/bin/Release/.nupkg
if-no-files-found: error
if: "github.ref == 'refs/heads/master' && github.event.pull_request.user.login != 'dependabot[bot]' && !contains(github.event.push.commits.
.author, 'dependabot[bot]')"

Suppress CA2254 in Steps.IO.Compression

My understanding of the original intent of this rule was to prevent developers from concatenating strings into logging messages.

The current implementation basically says that if the string is not hard-coded (and therefore not resource-driven and/or culture-aware), the CA2254 will be raised.

I have commented that I don't believe this should be the intent of the rule and if it is, that my team will simply suppress it as it generates too many false positives when using resource-driven strings.

Write a workflow that will remove support in all projects, unit tests and versioning for .NET 5.0 when it is no longer supported.

  • src/*.csproj files should remove the .net 5.0 from the already existing .NET 6.0 projects.
  • test/*csproj files should remove any references to .NET 5.0 in test projects.
  • changelog.md should add the new version at the top of the file with a description of the changes in the new version.
  • readme.md files should remove .NET 5.0 from supported versions.
  • .github/workflows/*.yaml should remove .NET 5.0 in the installation step for .NET SDKs.
  • .github/workflows/*.yaml should not alter any prefixes, if they exist.
  • .github/workflows/*.yaml should set the major version + 1, and minor/patch versions to 0.to reflect that new breaking changes are included with the removal of .NET 5.0 libraries.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.