GitHub Action
Setup NuGet.exe for use with actions
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.
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.
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
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
The downloaded nuget.exe
files are automatically cached between runs. To cache
your global nuget directory, consider using the official cache action.
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
The scripts and documentation in this project are released under the MIT License.