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.