Setup NuGet.exe for use with actions
ActionsTags
(2)Verified
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.
Setup NuGet.exe for use with actions is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.