이 작업은 다음 작업에 사용할 .NET CLI 환경을 설정합니다.
참고 : GitHub 호스팅 실행기에는 일부 버전의 .NET SDK가 사전 설치되어 있습니다. 설치된 버전은 변경될 수 있습니다. 현재 사용 가능한 .NET SDK 버전용 github 호스팅 실행기에 설치된 소프트웨어 설명서를 참조하세요.
action.yml 참조
기초적인 :
steps :
- uses : actions/checkout@v4
- uses : actions/setup-dotnet@v4
with :
dotnet-version : ' 3.1.x '
- run : dotnet build <my project>
경고 :
global.json
파일에 구체적인 버전이 지정되어 있지 않으면 실행기에 설치된 최신 .NET 버전(사전 설치된 버전 포함)이 기본적으로 사용됩니다 . 현재 사전 설치된 .NET SDK 버전에 대한 설명서를 참조하세요.
여러 버전 설치 :
steps :
- uses : actions/checkout@v4
- name : Setup dotnet
uses : actions/setup-dotnet@v4
with :
dotnet-version : |
3.1.x
5.0.x
- run : dotnet build <my project>
dotnet-version
입력은 다음 구문을 지원합니다.
3.1
에 설치합니다..NET 5.0
릴리스부터 사용 가능합니다. 시험판 버전(미리 보기, rc)을 포함하여 특정 SDK 릴리스의 최신 버전을 설치합니다. dotnet-quality
입력 사용 이 입력은 채널에 지정된 품질의 최신 빌드를 설치하는 작업을 설정합니다. dotnet-quality
의 가능한 값은 daily , signed , verify , Preview , ga 입니다.
참고 :
dotnet-quality
입력은 주 버전이 5보다 높은 'A.B', 'ABx', 'A', 'Ax' 및 'ABCxx' 형식의 .NET SDK 버전에서만 사용할 수 있습니다. 다른 경우에는 ,dotnet-quality
입력은 무시됩니다.
steps :
- uses : actions/checkout@v4
- uses : actions/setup-dotnet@v4
with :
dotnet-version : ' 6.0.x '
dotnet-quality : ' preview '
- run : dotnet build <my project>
global-json-file
입력 사용 setup-dotnet
작업은 global.json
파일에서 .NET SDK 버전을 읽을 수 있습니다. 입력 global-json-file
global.json
에 대한 경로를 지정하는 데 사용됩니다. global-json-file
입력에 제공된 파일이 존재하지 않으면 작업이 오류와 함께 실패합니다.
참고 :
dotnet-version
및global-json-file
입력을 모두 사용하는 경우 두 입력의 버전이 모두 설치됩니다.
steps :
- uses : actions/checkout@v4
- uses : actions/setup-dotnet@v4
with :
global-json-file : csharp/global.json
- run : dotnet build <my project>
working-directory : csharp
이 작업에는 종속성을 캐싱하고 복원하는 기능이 내장되어 있습니다. 글로벌 패키지 데이터를 캐싱하기 위해 내부적으로 툴킷/캐시를 사용하지만 구성 설정이 덜 필요합니다. cache
입력은 선택 사항이며 캐싱은 기본적으로 꺼져 있습니다.
이 작업은 리포지토리 루트에서 NuGet 잠금 파일( packages.lock.json
)을 검색하고 해당 해시를 계산하여 캐시 키의 일부로 사용합니다. 잠금 파일이 없으면 이 작업을 수행하면 오류가 발생합니다. 여러 종속성 파일이 사용되거나 다른 하위 디렉터리에 있는 경우 cache-dependency-path
사용하세요.
경고 : NuGet 잠금 파일은 NuGet 4.9 이상에서만 사용할 수 있으므로 NuGet 패키지 캐싱은 .NET SDK 2.1.500 및 2.2.100부터 사용할 수 있습니다.
steps :
- uses : actions/checkout@v4
- uses : actions/setup-dotnet@v4
with :
dotnet-version : 6.x
cache : true
- run : dotnet restore --locked-mode
참고 : 이 작업은
global-packages
폴더만 복원하므로dotnet restore
실행할 때 NU1403 오류가 발생할 수 있습니다. 이를 방지하려면DisableImplicitNuGetFallbackFolder
옵션을 사용할 수 있습니다.
< PropertyGroup >
< DisableImplicitNuGetFallbackFolder >true</ DisableImplicitNuGetFallbackFolder >
</ PropertyGroup >
참고 : 가능한 경우
NUGET_PACKAGES
환경 변수를 사용하세요. 일부 액션 러너에는 이미 거대한 라이브러리가 있습니다. (예: 자마린)
env :
NUGET_PACKAGES : ${{ github.workspace }}/.nuget/packages
steps :
- uses : actions/checkout@v4
- uses : actions/setup-dotnet@v4
with :
dotnet-version : 6.x
cache : true
- run : dotnet restore --locked-mode
env :
NUGET_PACKAGES : ${{ github.workspace }}/.nuget/packages
steps :
- uses : actions/checkout@v4
- uses : actions/setup-dotnet@v4
with :
dotnet-version : 6.x
cache : true
cache-dependency-path : subdir/packages.lock.json
- run : dotnet restore --locked-mode
setup-dotnet
사용하면 행렬 구문을 사용하여 여러 버전의 .NET SDK를 설치할 수 있습니다.
jobs :
build :
runs-on : ubuntu-latest
strategy :
matrix :
dotnet : [ '2.1.x', '3.1.x', '5.0.x' ]
name : Dotnet ${{ matrix.dotnet }} sample
steps :
- uses : actions/checkout@v4
- name : Setup dotnet
uses : actions/setup-dotnet@v4
with :
dotnet-version : ${{ matrix.dotnet }}
- name : Execute dotnet
run : dotnet build <my project>
참고 :
global.json
파일에 구체적인 버전이 지정되지 않는 한 기본적으로 실행기에 설치된 최신 .NET 버전(사전 설치된 버전 포함)이 사용됩니다. 이 동작을 제어하려면 임시global.json
파일을 사용할 수 있습니다.
임시 global.json 생성을 통한 매트릭스 테스트
jobs :
build :
runs-on : ubuntu-latest
strategy :
matrix :
dotnet : [ '2.1.x', '3.1.x', '5.0.x' ]
name : Dotnet ${{ matrix.dotnet }} sample
steps :
- uses : actions/checkout@v4
- name : Setup dotnet
uses : actions/setup-dotnet@v4
id : stepid
with :
dotnet-version : ${{ matrix.dotnet }}
- name : Create temporary global.json
run : echo '{"sdk":{"version": "${{ steps.stepid.outputs.dotnet-version }}"}}' > ./global.json
- name : Execute dotnet
run : dotnet build <my project>
steps :
- uses : actions/checkout@v4
- uses : actions/setup-dotnet@v4
with :
dotnet-version : ' 3.1.x '
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
- uses : actions/setup-dotnet@v4
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
- uses : actions/setup-dotnet@v4
with :
dotnet-version : 3.1.x
- name : Publish the package to nuget.org
run : dotnet nuget push */bin/Release/*.nupkg -k $NUGET_AUTH_TOKEN -s https://api.nuget.org/v3/index.json
env :
NUGET_AUTH_TOKEN : ${{ secrets.NUGET_TOKEN }}
참고 : 이는 API 키 구성 저장소 제한으로 인해 macOS/Linux 시스템용 nuget.org 피드에 패키지를 푸시하는 유일한 방법입니다.
dotnet-version
dotnet-version 출력을 사용하면 .NET SDK 버전 작업을 통해 설치할 수 있습니다.
단일 버전 설치
단일 버전 설치의 경우 dotnet-version
출력에는 작업으로 설치된 버전이 포함됩니다.
- uses : actions/setup-dotnet@v4
id : stepid
with :
dotnet-version : 3.1.422
- run : echo '${{ steps.stepid.outputs.dotnet-version }}' # outputs 3.1.422
여러 버전 설치
여러 버전 설치의 경우 dotnet-version
출력에는 작업으로 설치된 최신 버전이 포함됩니다.
- uses : actions/setup-dotnet@v4
id : stepid
with :
dotnet-version : |
3.1.422
5.0.408
- run : echo '${{ steps.stepid.outputs.dotnet-version }}' # outputs 5.0.408
global.json에서 설치
dotnet-version
입력이 global-json-file
입력과 함께 사용되는 경우 dotnet-version
출력에는 global.json
에서 확인된 버전이 포함됩니다.
- uses : actions/setup-dotnet@v4
id : stepid
with :
dotnet-version : |
3.1.422
5.0.408
global-json-file : " ./global.json " # contains version 2.2.207
- run : echo '${{ steps.stepid.outputs.dotnet-version }}' # outputs 2.2.207
cache-hit
캐시 키에 대해 정확히 일치하는 항목이 발견되었음을 나타내는 부울 값(작업/캐시를 따름)
특정 경우나 로깅 개선을 위해 일부 환경 변수가 필요할 수 있습니다. 아래에는 몇 가지 예가 나열되어 있지만 전체 세부 정보가 포함된 전체 목록은 여기(https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-environment-variables)에서 확인할 수 있습니다.
환경변수 | 설명 | 기본값 |
---|---|---|
DOTNET_INSTALL_DIR | 작업으로 .NET SDK를 설치해야 하는 디렉터리를 지정합니다. | OS별 기본값 |
DOTNET_NOLOGO | dotnet cli의 첫 번째 실행에서 로고 및 원격 측정 메시지를 제거합니다. | 거짓 |
DOTNET_CLI_TELEMETRY_OPTOUT | Microsoft로 전송되는 원격 분석의 옵트아웃 | 거짓 |
DOTNET_MULTILEVEL_LOOKUP | 전역 설치 위치를 대체 위치로 사용할지 여부를 구성합니다. | 진실 |
NUGET_PACKAGES | NuGet global-packages 폴더에 대한 경로를 구성합니다. | OS별 기본값 |
DOTNET_INSTALL_DIR
및 NUGET_PACKAGES
환경 변수의 기본값은 실행기에서 사용되는 운영 체제에 따라 다릅니다.
운영시스템 | DOTNET_INSTALL_DIR | NUGET_PACKAGES |
---|---|---|
윈도우 | C:Program Filesdotnet | %userprofile%.nugetpackages |
우분투 | /usr/share/dotnet | ~/.nuget/packages |
macOS | /Users/runner/.dotnet | ~/.nuget/packages |
환경 변수 사용 예 :
build :
runs-on : ubuntu-latest
env :
DOTNET_INSTALL_DIR : " path/to/directory "
NUGET_PACKAGES : ${{ github.workspace }}/.nuget/packages
steps :
- uses : actions/checkout@main
- uses : actions/setup-dotnet@v4
with :
dotnet-version : ' 3.1.x '
cache : true
이 프로젝트의 스크립트와 문서는 MIT 라이선스에 따라 공개됩니다.
기여를 환영합니다! 기여자 가이드 보기