이 빠른 시작에서는 소스 코드에서 .NET 앱을 게시하는 GitHub 워크플로를 만드는 방법을 알아봅니다. GitHub에서 대상으로 .NET 앱을 자동으로 게시하는 것을 CD(연속 배포)라고 합니다. 이 빠른 시작 가이드에서는 애플리케이션을 Azure에 게시하는 방법을 알아봅니다. 애플리케이션을 게시할 수 있는 다양한 장소가 있지만, 이번에는 Azure에 집중하겠습니다.
필수 조건
- GitHub 계정
- .NET 소스 코드 리포지토리입니다.
- 활성 구독이 있는 Azure 계정. 무료로 계정을 만듭니다.
- ASP.NET Core 웹앱입니다.
- Azure App Service 리소스입니다.
게시 프로필 추가
Azure에 앱을 게시하려면 애플리케이션의 App Service 인스턴스에 대한 Azure Portal을 엽니다. 리소스 개요에서 게시 프로필 가져오기를 선택하고 *.PublishSetting 파일을 로컬에 저장합니다.
경고
게시 프로필에는 Azure App Service 리소스에 액세스하기 위한 자격 증명과 같은 중요한 정보가 포함되어 있습니다. 이 정보는 항상 매우 신중하게 처리되어야 합니다.
GitHub 리포지토리의 설정 으로 이동하고 왼쪽 탐색 메뉴에서 비밀을 선택합니다. 새 리포지토리 비밀을 선택하여 새 비밀을 추가합니다.
AZURE_PUBLISH_PROFILE에 를 입력하고, 게시 프로필의 XML 콘텐츠를 Value 텍스트 영역에 붙여넣습니다.
비밀 추가를 선택합니다. 자세한 내용은 암호화된 비밀을 참조하세요.
워크플로 파일 만들기
GitHub 리포지토리에서 .github/workflows 디렉터리에 새 YAML 파일을 추가합니다. 워크플로의 용도를 명확하게 나타내는 의미 있는 파일 이름을 선택합니다. 자세한 내용은 워크플로 파일을 참조하세요.
중요합니다
GitHub를 사용하려면 워크플로 컴퍼지션 파일을 .github/workflows 디렉터리 내에 배치해야 합니다.
워크플로 파일은 일반적으로 하나 이상의 GitHub Action 구성을 jobs.<job_id>/steps[*]를 통해 정의합니다. 자세한 내용은 GitHub Actions에 대한 워크플로 구문을 참조하세요.
publish-app.yml 새 파일을 만들고 다음 YML 콘텐츠를 복사하여 붙여넣습니다.
name: publish
on:
push:
branches: [ production ]
env:
AZURE_WEBAPP_NAME: DotNetWeb
AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: |
cd DotNet.WebApp
dotnet build --configuration Release --no-restore
dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true
- name: Test
run: |
cd DotNet.WebApp.Tests
dotnet test --no-restore --verbosity normal
- uses: azure/webapps-deploy@v2
name: Deploy
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
이전 워크플로 컴퍼지션에서:
name: publish이름을 정의합니다. "게시"는 워크플로 상태 배지에 표시됩니다.name: publish노드는
on워크플로를 트리거하는 이벤트를 의미합니다.on: push: branches: [ production ]-
production지점에서push이(가) 발생할 때 트리거됩니다.
-
노드는
env명명된 환경 변수(env var)를 정의합니다.env: AZURE_WEBAPP_NAME: DotNetWeb AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use- 환경 변수
AZURE_WEBAPP_NAME에 값DotNetWeb이 할당됩니다. - 환경 변수
AZURE_WEBAPP_PACKAGE_PATH에 값'.'이 할당됩니다. - 환경 변수
DOTNET_VERSION에 값'6.0.401'이 할당됩니다. 환경 변수는 나중에 GitHub Action을dotnet-versionactions/setup-dotnet@v3지정하기 위해 참조됩니다.
- 환경 변수
노드는
jobs워크플로에서 수행할 단계를 빌드합니다.jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: | cd DotNet.WebApp dotnet build --configuration Release --no-restore dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true - name: Test run: | cd DotNet.WebApp.Tests dotnet test --no-restore --verbosity normal - uses: azure/webapps-deploy@v2 name: Deploy with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'- Ubuntu의 최신 버전에서 실행되는 단일 작업이 있습니다
publish. -
actions/setup-dotnet@v3GitHub 작업은 환경 변수에서 지정된 버전으로 .NET SDK를DOTNET_VERSION설정하는 데 사용됩니다. -
dotnet restore명령이 호출됩니다. -
dotnet build명령이 호출됩니다. -
dotnet publish명령이 호출됩니다. -
dotnet test명령이 호출됩니다. -
azure/webapps-deploy@v2GitHub 작업은 지정된publish-profile및package로 앱을 배포합니다.-
AZURE_PUBLISH_PROFILE리포지토리 비밀에서publish-profile가 할당됩니다.
-
- Ubuntu의 최신 버전에서 실행되는 단일 작업이 있습니다
워크플로 상태 배지 만들기
GitHub 리포지토리가 리포지토리 디렉터리의 루트에 README.md 파일을 갖는 것은 일반적인 명명법입니다. 마찬가지로 다양한 워크플로에 대한 최신 상태를 보고하는 것이 좋습니다. 모든 워크플로는 README.md 파일 내에서 시각적으로 매력적인 상태 배지를 생성할 수 있습니다. 워크플로 상태 배지를 추가하려면 다음을 수행합니다.
GitHub 리포지토리에서 작업 탐색 옵션을 선택합니다.
모든 리포지토리 워크플로가 왼쪽에 표시되고 원하는 워크플로와 줄임표(...) 단추를 선택합니다.
- 줄임표(...) 단추는 선택한 워크플로의 메뉴 옵션을 확장합니다.
상태 배지 만들기 메뉴 옵션을 선택합니다.
상태 배지 Markdown 복사 단추를 선택합니다.
Markdown을 README.md 파일에 붙여넣고, 파일을 저장하고, 변경 내용을 커밋하고 푸시합니다.
자세한 내용은 워크플로 상태 배지 추가를 참조하세요.
워크플로 상태 배지 게시 예제
| 전달하기 | 실패 | 상태 없음 |
|---|---|---|
|
|
|
|
참고하십시오
- dotnet restore
- dotnet build
- dotnet 테스트
- dotnet 게시
다음 단계
.NET