Skip to content

Keith-McKinley/setup-nuget

 
 

Repository files navigation

Setup NuGet.exe

This action downloads and installs a given version of NuGet.exe. Using this action will add nuget to your $PATH on all operating systems, including macOS and linux, without having to prefix it with mono.

NuGet functionality also gets delivered with Visual Studio, msbuild and dotnet SDK. You should consider using the official setup-dotnet or one of the msbuild actions.

Usage

See action.yml

Supported values for nuget-version:

  • latest -- the latest blessed NuGet release.
  • preview -- the latest EarlyAccessPreview release.
  • X.Y.Z -- concrete semver version for a release (e.g. 5.3.1).
  • semver range -- any valid semver range specifier (e.g. 5, >=5, 5.3.x, etc)

This action also supports configuring your NuGet API key using GitHub secrets. The API key should be passed in as an nuget-api-key input. See the GitHub documentation on secrets for how to configure secrets on your repository.

Basic:

steps:
- uses: actions/checkout@master
- uses: nuget/setup-nuget@v1
  with:
    nuget-api-key: ${{ secrets.NuGetAPIKey }}
    nuget-version: '5.x'
- run: nuget restore MyProject.sln

Matrix Testing:

name: NuGet Restore
on: [push, pull_request]
jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [windows-latest, ubuntu-latest, macOS-latest]
        nuget: [latest, preview, 4.x, 5.3.1]
    name: NuGet@${{ matrix.nuget }} sample
    steps:
      - uses: actions/checkout@master
      - name: Setup NuGet.exe
        uses: nuget/setup-nuget@v1
        with:
          nuget-version: ${{ matrix.nuget }}
      - run: nuget restore MyProject.sln

Caching

The downloaded nuget.exe files are automatically cached between runs. To cache your global nuget directory, consider using the official cache action.

Caching Example

Note: For this example, you'll need to enable repeatable builds for your project.

steps:
- uses: actions/checkout@master
- uses: nuget/setup-nuget@v1
  with:
    nuget-version: '5.x'
- uses: actions/cache@v1
  id: cache
  with:
    path: ~/.nuget/packages
    key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
- name: NuGet Restore
  if: steps.cache.outputs.cache-hit != 'true'
  run: nuget restore MyProject.sln

License

The scripts and documentation in this project are released under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 65.8%
  • JavaScript 34.2%