Skip to content

🧰 GitHub Action to update NuGet references of .NET nanoFramework projects

License

Notifications You must be signed in to change notification settings

nanoframework/nanodu

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions status License #yourfirstpr Discord

nanoFramework logo


GitHub Action for .NET nanoFramework dependencies updater

This action installs the nanodu dotnet tool and udpates the NuGet packages and respective nuspec files in any .NET nanoFramework solutions living in a GitHub repository.

Inputs

Name Default Options Description
workingDirectory root Repository workspace path optional folder path Use when targeting Solution file(s) other than in the repository root folder.
branchToPr main branch Name of branch to which submit the PR with the updates.
stablePackages true true/false Use true for stable NuGet package versions.
previewPackages false true/false Use true for preview NuGet package versions.
solutionsToCheck All optional string path(s) List of Solution(s) to update in the current workingDirectory.
reposToUpdate None optional repository names List of (dependent upstream) repository(es) to update. [internal use only].
exclusionList None optional solution list List of solution(s) to exclude from update. Comma separated list.
gitHubUser GitHub user for creating PR.
gitHubEmail GitHub user email for creating PR.
gitHubAuth GitHub Personal Access Token for creating PR.
nugetConfig Path to nuget.config file to use for NuGet operations.
repoOwner Repository owner on GitHhub. github.com/[repoOwner]/repositoryName.
useTokenForClone Should use token for cloning repositories (required when working with private repositories).

Example usage

Update dependencies of library in repository where this action is being executed using preview NuGet packages.

- uses: nanoframework/nanodu@v1
  env:
    GITHUB_TOKEN: ${{ github.token }}
  with:
    previewPackages: true

Update dependencies of amqp-nanoFramework.sln solution using stable NuGet packages.

- uses: nanoframework/nanodu@v1
  env:
    GITHUB_TOKEN: ${{ github.token }}
  with:
    stablePackages: true
    solutionsToCheck: 'amqp-nanoFramework.sln'

Update dependencies on several repositories using stable NuGet packages and a NuGet.config file.

- uses: nanoframework/nanodu@v1
  env:
    GITHUB_TOKEN: ${{ github.token }}
  with:
    stablePackages: true
    nugetConfig: 'C:\repos\NuGet.config'
    reposToUpdate: >
      System.Net.Http
      System.Net.WebSockets
      System.Device.WiFi
      nanoFramework.m2mqtt
      nanoFramework.Azure.Devices

Update dependencies on all solutions, except MyLibrary and MyOtherLibrary, using preview NuGet packages.

- uses: nanoframework/nanodu@v1
  env:
    GITHUB_TOKEN: ${{ github.token }}
  with:
    previewPackages: true
    solutionsToCheck: 'amqp-nanoFramework.sln'
    exclusionList: 'MyLibrary,MyOtherLibrary'

Authentication

In order to run properly this action requires authentication. There are two ways to accomplish this:

  1. Setting up the GitHub token as an environment variable. There are numerous ways of doing this. On the examples above it's being set on the action itself. If that's done elsewhere before the action runs, there is no need to do it again.
  2. Passing a Personal Access Token in the gitHubAuth parameter. This is required if there are GitHub actions or workflows that run as consequence of that PR being created. This is because of a GitHub security feature that prevents recurring runs when using the repository default token. For more details please read the documentation here.

Feedback and documentation

For documentation, providing feedback, issues and finding out how to contribute please refer to the Home repo.

Join our Discord community here.

Credits

The list of contributors to this project can be found at CONTRIBUTORS.

License

The nanoFramework Class Libraries are licensed under the MIT license.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behaviour in our community. For more information see the .NET Foundation Code of Conduct.

.NET Foundation

This project is supported by the .NET Foundation.