Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
setup-dotnet/.github/workflows/workflow.yml
View runs Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
216 lines (207 sloc)
6.07 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Main workflow | |
on: | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
push: | |
branches: | |
- main | |
- releases/* | |
paths-ignore: | |
- '**.md' | |
jobs: | |
build: | |
runs-on: ${{ matrix.operating-system }} | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set Node.js 16 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: npm | |
- run: npm ci | |
- run: npm run build | |
- run: npm run format-check | |
- run: npm test | |
- name: Verify no unstaged changes | |
if: runner.os != 'windows' | |
run: __tests__/verify-no-unstaged-changes.sh | |
test-setup-multiple-versions: | |
runs-on: ${{ matrix.operating-system }} | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Clear toolcache | |
shell: pwsh | |
run: __tests__/clear-toolcache.ps1 ${{ runner.os }} | |
- name: Setup dotnet 2.2.402 and 3.1.404 | |
uses: ./ | |
with: | |
dotnet-version: | | |
2.2.402 | |
3.1.404 | |
3.0.x | |
- name: Verify dotnet | |
shell: pwsh | |
run: __tests__/verify-dotnet.ps1 2.2.402 3.1.404 '3.0' | |
test-setup-full-version: | |
runs-on: ${{ matrix.operating-system }} | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Clear toolcache | |
shell: pwsh | |
run: __tests__/clear-toolcache.ps1 ${{ runner.os }} | |
# Side-by-side install of 2.2 and 3.1 used for the test project | |
- name: Setup dotnet 2.2.402 | |
uses: ./ | |
with: | |
dotnet-version: 2.2.402 | |
- name: Setup dotnet 3.1.201 | |
uses: ./ | |
with: | |
dotnet-version: 3.1.201 | |
# We are including this veriable to force the generation of the nuget config file to verify that it is created in the correct place | |
source-url: https://api.nuget.org/v3/index.json | |
env: | |
NUGET_AUTH_TOKEN: NOTATOKEN | |
- name: Verify nuget config file | |
shell: pwsh | |
run: | | |
if (-Not (Test-Path "../nuget.config")) { throw "nuget file not generated correctly" } | |
- name: Verify dotnet | |
shell: pwsh | |
run: __tests__/verify-dotnet.ps1 3.1.201 2.2.402 | |
test-setup-without-patch-version: | |
runs-on: ${{ matrix.operating-system }} | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Clear toolcache | |
shell: pwsh | |
run: __tests__/clear-toolcache.ps1 ${{ runner.os }} | |
# 2.0, 3.0, 5.0 needs to be in single quotes to interpret as a string instead of as an integer | |
- name: Setup dotnet '3.1' | |
uses: ./ | |
with: | |
dotnet-version: '3.1' | |
- name: Setup dotnet '2.2' | |
uses: ./ | |
with: | |
dotnet-version: '2.2' | |
- name: Verify dotnet | |
shell: pwsh | |
run: __tests__/verify-dotnet.ps1 3.1 2.2 | |
test-setup-latest-patch-version: | |
runs-on: ${{ matrix.operating-system }} | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Clear toolcache | |
shell: pwsh | |
run: __tests__/clear-toolcache.ps1 ${{ runner.os }} | |
- name: Setup dotnet 3.1.x | |
uses: ./ | |
with: | |
dotnet-version: 3.1.x | |
- name: Setup dotnet 2.2.x | |
uses: ./ | |
with: | |
dotnet-version: 2.2.x | |
- name: Verify dotnet | |
shell: pwsh | |
run: __tests__/verify-dotnet.ps1 3.1 2.2 | |
test-setup-with-wildcard: | |
runs-on: ${{ matrix.operating-system }} | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Clear toolcache | |
shell: pwsh | |
run: __tests__/clear-toolcache.ps1 ${{ runner.os }} | |
- name: Setup dotnet 3.1.* | |
uses: ./ | |
with: | |
dotnet-version: 3.1.* | |
- name: Setup dotnet 2.2.* | |
uses: ./ | |
with: | |
dotnet-version: 2.2.* | |
- name: Verify dotnet | |
shell: pwsh | |
run: __tests__/verify-dotnet.ps1 3.1 2.2 | |
test-proxy: | |
runs-on: ubuntu-latest | |
container: | |
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.0-bionic | |
options: --dns 127.0.0.1 | |
services: | |
squid-proxy: | |
image: datadog/squid:latest | |
ports: | |
- 3128:3128 | |
env: | |
https_proxy: http://squid-proxy:3128 | |
http_proxy: http://squid-proxy:3128 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Clear tool cache | |
run: rm -rf "/usr/share/dotnet" | |
- name: Install curl | |
run: | | |
apt update | |
apt -y install curl | |
- name: Setup dotnet 3.1.201 | |
uses: ./ | |
with: | |
dotnet-version: 3.1.201 | |
source-url: https://api.nuget.org/v3/index.json | |
env: | |
NUGET_AUTH_TOKEN: NOTATOKEN | |
- name: Verify dotnet | |
run: __tests__/verify-dotnet.sh 3.1.201 | |
test-bypass-proxy: | |
runs-on: ubuntu-latest | |
env: | |
https_proxy: http://no-such-proxy:3128 | |
no_proxy: github.com,dotnetcli.blob.core.windows.net,download.visualstudio.microsoft.com,api.nuget.org,dotnetcli.azureedge.net | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Clear tool cache | |
run: rm -rf "/usr/share/dotnet" | |
- name: Setup dotnet 3.1.201 | |
uses: ./ | |
with: | |
dotnet-version: 3.1.201 | |
source-url: https://api.nuget.org/v3/index.json | |
env: | |
NUGET_AUTH_TOKEN: NOTATOKEN | |
- name: Verify dotnet | |
run: __tests__/verify-dotnet.sh 3.1.201 |