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@v2
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@v2
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@v2
with:
nuget-version: '5.x'
- uses: actions/cache@v4
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
Install the dependencies
$ npm install
Build the typescript and package it for distribution
$ npm run build && npm run package
Run the tests ✔️
$ npm test
PASS ./index.test.js
✓ throws invalid number (3ms)
✓ wait 500 ms (504ms)
✓ test runs (95ms)
...
Actions are run from GitHub repos so we will checkin the packed dist folder.
Then run ncc and push the results:
$ npm run package
$ git add dist
$ git commit -a -m "prod dependencies"
$ git push origin releases/v1
Note: We recommend using the --license
option for ncc, which will create a license file for all of the production node modules used in your project.
Your action is now published! 🚀
See the versioning documentation
The scripts and documentation in this project are released under the MIT License.