All Projects → brandedoutcast → Publish Nuget

brandedoutcast / Publish Nuget

Licence: mit
📦 GitHub action to automate publishing NuGet packages when project version changes

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Publish Nuget

Standard Version
🏆 Automate versioning and CHANGELOG generation, with semver.org and conventionalcommits.org
Stars: ✭ 5,806 (+5226.61%)
Mutual labels:  version, tag, release
Bump
Bump updates the project's version, updates/creates the changelog, makes the bump commit, tags the bump commit and makes the release to GitHub. Opinionated but configurable.
Stars: ✭ 327 (+200%)
Mutual labels:  version, tag, release
Framework
.NET Core Extensions and Helper NuGet packages.
Stars: ✭ 399 (+266.06%)
Mutual labels:  nuget, dotnet-core
Nukeeper
Automagically update nuget packages in .NET projects
Stars: ✭ 437 (+300.92%)
Mutual labels:  nuget, dotnet-core
Weixinmpsdk
微信全平台 SDK Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 6.0。已支持微信公众号、小程序、小游戏、企业号、企业微信、开放平台、微信支付、JSSDK、微信周边等全平台。 WeChat SDK for C#.
Stars: ✭ 7,098 (+6411.93%)
Mutual labels:  nuget, dotnet-core
Releaser Tools
Create a GitHub/GitLab/etc. release using a project's commit messages and metadata.
Stars: ✭ 283 (+159.63%)
Mutual labels:  tag, release
Tusdotnet
.NET server implementation of the Tus protocol for resumable file uploads. Read more at https://tus.io
Stars: ✭ 298 (+173.39%)
Mutual labels:  nuget, dotnet-core
Keep A Changelog
If you build software, keep a changelog.
Stars: ✭ 5,065 (+4546.79%)
Mutual labels:  tag, release
Unitynuget
Provides a service to install NuGet packages into a Unity project via the Unity Package Manager
Stars: ✭ 257 (+135.78%)
Mutual labels:  nuget, dotnet-core
Auto
Generate releases based on semantic version labels on pull requests.
Stars: ✭ 1,120 (+927.52%)
Mutual labels:  publishing, release
Metav
Release and Versioning of Clojure projects using tools.deps
Stars: ✭ 62 (-43.12%)
Mutual labels:  version, release
Npm
🚢 semantic-release plugin to publish a npm package
Stars: ✭ 103 (-5.5%)
Mutual labels:  version, release
Serilog.exceptions
Log exception details and custom properties that are not output in Exception.ToString().
Stars: ✭ 282 (+158.72%)
Mutual labels:  nuget, dotnet-core
Cli
🆑📍 Setup automated semver compliant package publishing
Stars: ✭ 272 (+149.54%)
Mutual labels:  version, release
Python Semver
Python package to work with Semantic Versioning (http://semver.org/)
Stars: ✭ 264 (+142.2%)
Mutual labels:  version, release
Bintray Publish
Super easy way to publish your Android and Java artifacts to bintray.
Stars: ✭ 97 (-11.01%)
Mutual labels:  publishing, release
perfekt
Release, changelog and version your packages with perfe(k)t 👌 ease!
Stars: ✭ 15 (-86.24%)
Mutual labels:  version, release
change
A simple tool that automates generating and updating a changelog
Stars: ✭ 47 (-56.88%)
Mutual labels:  release, tag
Computesharp
A .NET 5 library to run C# code in parallel on the GPU through DX12 and dynamically generated HLSL compute shaders, with the goal of making GPU computing easy to use for all .NET developers! 🚀
Stars: ✭ 982 (+800.92%)
Mutual labels:  nuget, dotnet-core
Please
please is semver release made easy
Stars: ✭ 72 (-33.94%)
Mutual labels:  publishing, release

✨ Publish NuGet

GitHub action to build, pack & publish nuget packages automatically when a project version is updated

Usage

Create new .github/workflows/publish.yml file:

name: publish to nuget
on:
  push:
    branches:
      - master # Default release branch
jobs:
  publish:
    name: build, pack & publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/[email protected]

      # - name: Setup dotnet
      #   uses: actions/[email protected]
      #   with:
      #     dotnet-version: 3.1.200

      # Publish
      - name: publish on version change
        id: publish_nuget
        uses: rohith/[email protected]
        with:
          # Filepath of the project to be packaged, relative to root of repository
          PROJECT_FILE_PATH: Core/Core.csproj
          
          # NuGet package id, used for version detection & defaults to project name
          # PACKAGE_NAME: Core
          
          # Filepath with version info, relative to root of repository & defaults to PROJECT_FILE_PATH
          # VERSION_FILE_PATH: Directory.Build.props

          # Regex pattern to extract version info in a capturing group
          # VERSION_REGEX: ^\s*<Version>(.*)<\/Version>\s*$
          
          # Useful with external providers like Nerdbank.GitVersioning, ignores VERSION_FILE_PATH & VERSION_REGEX
          # VERSION_STATIC: 1.0.0

          # Flag to toggle git tagging, enabled by default
          # TAG_COMMIT: true

          # Format of the git tag, [*] gets replaced with actual version
          # TAG_FORMAT: v*

          # API key to authenticate with NuGet server
          # NUGET_KEY: ${{secrets.NUGET_API_KEY}}

          # NuGet server uri hosting the packages, defaults to https://api.nuget.org
          # NUGET_SOURCE: https://api.nuget.org

          # Flag to toggle pushing symbols along with nuget package to the server, disabled by default
          # INCLUDE_SYMBOLS: false
  • Project gets published only if there's a NUGET_KEY configured in the repository

Inputs

Input Default Value Description
PROJECT_FILE_PATH Filepath of the project to be packaged, relative to root of repository
PACKAGE_NAME NuGet package id, used for version detection & defaults to project name
VERSION_FILE_PATH [PROJECT_FILE_PATH] Filepath with version info, relative to root of repository & defaults to PROJECT_FILE_PATH
VERSION_REGEX ^\s*<Version>(.*)<\/Version>\s*$ Regex pattern to extract version info in a capturing group
VERSION_STATIC Useful with external providers like Nerdbank.GitVersioning, ignores VERSION_FILE_PATH & VERSION_REGEX
TAG_COMMIT true Flag to toggle git tagging, enabled by default
TAG_FORMAT v* Format of the git tag, [*] gets replaced with actual version
NUGET_KEY API key to authenticate with NuGet server
NUGET_SOURCE https://api.nuget.org NuGet server uri hosting the packages, defaults to https://api.nuget.org
INCLUDE_SYMBOLS false Flag to toggle pushing symbols along with nuget package to the server, disabled by default

Outputs

Output Description
VERSION Version of the associated git tag
PACKAGE_NAME Name of the NuGet package generated
PACKAGE_PATH Path to the generated NuGet package
SYMBOLS_PACKAGE_NAME Name of the symbols package generated
SYMBOLS_PACKAGE_PATH Path to the generated symbols package

FYI:

  • Outputs may or may not be set depending on the action inputs or if the action failed
  • NUGET_SOURCE must support /v3-flatcontainer/PACKAGE_NAME/index.json for version change detection to work
  • Multiple projects can make use of steps to configure each project individually, common inputs between steps can be given as env for job / workflow

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].