Go to file
Zachary Eisinger 73683e5d2f
Merge pull request #92 from actions/readme-envvars
Include useful environment variables in the README
2020-06-12 10:51:24 -07:00
__tests__ Merge branch 'support-latest-version' of https://github.com/litetex/setup-dotnet-forked into litetex-support-latest-version 2020-05-29 14:04:29 -07:00
.github follow proxy settings 2020-02-06 15:02:47 -05:00
dist Rebuild dist package 2020-05-29 14:04:53 -07:00
docs Initial commit 2019-06-19 16:22:22 -04:00
externals Prettier and update bash 2020-05-15 14:21:50 -07:00
src Merge branch 'support-latest-version' of https://github.com/litetex/setup-dotnet-forked into litetex-support-latest-version 2020-05-29 14:04:29 -07:00
.gitignore Merge remote-tracking branch 'origin/master' into global-json 2020-05-15 14:04:07 -07:00
.prettierrc.json Initial commit 2019-06-19 16:22:22 -04:00
action.yml Updated doc 2020-04-04 18:09:19 +02:00
jest.config.js Initial commit 2019-06-19 16:22:22 -04:00
LICENSE Initial commit 2019-06-19 16:22:22 -04:00
package-lock.json package updates 2020-05-15 14:42:54 -07:00
package.json package updates 2020-05-15 14:42:54 -07:00
README.md Merge pull request #92 from actions/readme-envvars 2020-06-12 10:51:24 -07:00
tsconfig.json GPR authentication support 2019-10-03 16:35:25 -07:00

setup-dotnet

GitHub Actions status

This action sets up a dotnet core cli environment for use in actions by:

  • optionally downloading and caching a version of dotnet by SDK version and adding to PATH
  • registering problem matchers for error output
  • setting up authentication to private package sources like GitHub Packages

Usage

See action.yml

Basic:

steps:
- uses: actions/checkout@master
- uses: actions/setup-dotnet@v1
  with:
    dotnet-version: '3.1.x' # SDK Version to use; x will use the latest version of the 3.1 channel
- run: dotnet build <my project>

Matrix Testing:

jobs:
  build:
    runs-on: ubuntu-16.04
    strategy:
      matrix:
        dotnet: [ '2.2.103', '3.0', '3.1.x' ]
    name: Dotnet ${{ matrix.dotnet }} sample
    steps:
      - uses: actions/checkout@master
      - name: Setup dotnet
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: ${{ matrix.dotnet }}
      - run: dotnet build <my project>

Authentication for nuget feeds:

steps:
- uses: actions/checkout@master
# Authenticates packages to push to GPR
- uses: actions/setup-dotnet@v1
  with:
    dotnet-version: '3.1.x' # SDK Version to use.
    source-url: https://nuget.pkg.github.com/<owner>/index.json
  env:
    NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
- run: dotnet build <my project>
- name: Create the package
  run: dotnet pack --configuration Release <my project>
 - name: Publish the package to GPR
  run: dotnet nuget push <my project>/bin/Release/*.nupkg

# Authticates packages to push to Azure Artifacts
- uses: actions/setup-dotnet@v1
  with:
    source-url: https://pkgs.dev.azure.com/<your-organization>/_packaging/<your-feed-name>/nuget/v3/index.json
  env:
    NUGET_AUTH_TOKEN: ${{secrets.AZURE_DEVOPS_PAT}} # Note, create a secret with this name in Settings
- name: Publish the package to Azure Artifacts
  run: dotnet nuget push <my project>/bin/Release/*.nupkg

Environment Variables to use with dotnet

Some environment variables may be necessary for your particular case or to improve logging. Some examples are listed below, but the full list with complete details can be found here: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet#environment-variables

  • DOTNET_NOLOGO - removes logo and telemetry message from first run of dotnet cli (default: false)
  • DOTNET_CLI_TELEMETRY_OPTOUT - opt-out of telemetry being sent to Microsoft (default: false)
  • DOTNET_MULTILEVEL_LOOKUP - configures whether the global install location is used as a fall-back (default: true)

Example usage:

build:
  runs-on: ubuntu-latest
  env:
    DOTNET_NOLOGO: true
  steps:
    - uses: actions/checkout@master
    - uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '3.1.100' # SDK Version to use.

License

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

Contributions

Contributions are welcome! See Contributor's Guide