-
AzureWebApp에 ASP(.NETFramework)로 CI/CD 2 -사용할 yml파일 형태설명GitHub 2022. 2. 22. 12:00728x90
기본적으로 사용할 yml파일 형태설명
yml 파일은 Github actions, Azure PipeLine 등에서 사용할 CI/CD를 위해 가상머신에서 사용될 명령어 파일이다. 이번에는 Azure Apps에서 등록될시 기본형태를 보고 어떻게 구성되어 있는지 확인하자
더 자세한 내용은 공식문서 확인
Azure Apps 에서 등록시 기본 형태
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy # More GitHub Actions for Azure: https://github.com/Azure/actions name: Build and deploy ASP app to Azure Web App - 앱이름 on: push: branches: - main workflow_dispatch: jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Setup MSBuild path uses: microsoft/setup-msbuild@v1.0.2 - name: Setup NuGet uses: NuGet/setup-nuget@v1.0.5 - name: Restore NuGet packages run: nuget restore - name: Publish to folder run: msbuild /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="\published\" - name: Upload artifact for deployment job uses: actions/upload-artifact@v2 with: name: ASP-app path: '/published/**' deploy: runs-on: windows-latest needs: build environment: name: 'production' url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} steps: - name: Download artifact from build job uses: actions/download-artifact@v2 with: name: ASP-app - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: '앱이름' slot-name: 'production' publish-profile: ${{ secrets.AzureAppService_PublishProfile_1234 }} package: .
실행순서 -
name
- 가장 최상단에
name : 워크플로 이름
이런식으로 워크플로 이름을 지정한다. 지정한 워크플로 이름으로 Github Actions 탭에 생성한다.
실행순서 -
on
on: push: branches: - main workflow_dispatch:
- Github 에 push 작업이 있을시 그리고 그 branch가 main일시. 위에서 지정한 워크플로에 새로 작업을 만드는 명령이다.
- Actions 탭의 해당 워크플로를 클릭하면
- main에 push한 Commit 내용으로 새로운 이벤트가 생성된다.(아래그림은 '보이는 부분 수정'이라는 커밋내용으로 push해서 생성되었다))br>
실행순서 -
Jobs
jobs: build: #build 에서 실행할 작업 deploy: #deploy 에서 실행할 작업
jobs :
는 이후 실행할 작업을 정의한다.- 하위 단계에 위치한(탭 한번) 이름들(
build
,deploy
)은 작업의 이름이다. - 작업이 실행될시 작업의 이름으로 그룹화되어 보여준다(실행은 위에서 아래 순서대로 실행한다.)
- 그룹화된 작업은 워크플로의 커밋내용으로 생성된 이벤트를 클릭(commit 내용을 클릭)하면 좌측의 Jobs에 정의한 이름들이 보일것이다.(이벤트가 실행중이면 바로 보인다.)
실행순서 - build 작업
build: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Setup MSBuild path uses: microsoft/setup-msbuild@v1.0.2 - name: Setup NuGet uses: NuGet/setup-nuget@v1.0.5 - name: Restore NuGet packages run: nuget restore - name: Publish to folder run: msbuild /nologo /verbosity:m /t:Build t:pipelinePreDeployCopyAllFilesToOneFolder p:_PackageTempDir="\published\" - name: Upload artifact for deployment job uses: actions/upload-artifact@v2 with: name: ASP-app path: '/published/**'
자세한건 공식문서를 확인하자
runs-on:
은 현재 작업할 환경이 어떠한 환경에서 실행될지를 정의한다. .NetFrameWork의 경우 윈도우 환경에서만 돌아가니 windows-latest를 사용해야만 한다.steps:
작업 순서를 정의한다. 순서는 위에서 아래로 실행한다. 작업구분은-
로 구분한다.name :
실행할 작업의 이름을 정의한다. 정의한 이름에 따라 아래그림과 같이 'Set up job' 아래의 작업들은 name에 해당되는 이름을 같는다(없으면 Run uses 작업)
uses :
Github Actions 작업을 실행한다. 아래에는 이번에 사용한 것만 설명한다.
작업명 작업내용 actions/checkout@v2 가상머신으로 현 상황(여기선 master 에 Commit된 내용 전부) 버전을 옮긴다. microsoft/setup-msbuild@v1.0.2 가상머신에서 사용할 msbuild 를 세팅 NuGet/setup-nuget@v1.0.5 가상머신에서 사용할 Nuget 패키지 세팅 actions/upload-artifact@v2 배포를 위한 세팅 run :
가상머신 콘솔에서 실행될 명령이다. msbuild 등을 사용시 미리 세팅이 필요하다.
작업명 작업내용 nuget restore 현재위치에서 sln파일을 찾아(없다면 솔루션 경로를 적자) 솔루션에 서 지정한 프로젝트에 맞게 패키지를 설치한다 msbuild 'msbuild'설정들 현재 위치한 sln파일을 찾아(없다면 솔루션 혹은 배포할 프로젝트의 경로를 적자) 빌드를 실행하며 배포폴더로 옮긴다 실행순서 -
deploy
작업deploy: runs-on: windows-latest needs: build environment: name: 'production' url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} steps: - name: Download artifact from build job uses: actions/download-artifact@v2 with: name: ASP-app - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: '앱이름' slot-name: 'production' publish-profile: ${{ secrets.AzureAppService_PublishProfile_1234 }} package: .
runs-on:
은 현재 작업할 환경이 어떠한 환경에서 실행될지를 정의한다.needs:
해당 작업을 실행할시 미리 실행되어야 하는 작업 여기선build
가 실행이 끝나야(에러없이) 실행이 가능environment
환경변수를 정의한다. 여기서는production
이라는 이름이 url을 갖는 변수를 만든다. ${{}}은 환경변수 설정을 가져온다.uses :
Github Actions 작업을 실행한다. 아래에는 이번에 사용한 것만 설명한다.
작업명 작업내용 actions/download-artifact@v2 빌드 결과를 배포를 위해 만든 위치에서 가져온다(actions/upload-artifact@v2) azure/webapps-deploy@v2 배포작업을 실행한다. 여기서는 설정해놓은 환경변수인 production위치에 프로필을 가져와 현재위치의 파일들을 패키징해서 배포한다. 728x90반응형'GitHub' 카테고리의 다른 글
Github Actions CI/CD 3 - 기초 yml파일 필수 수정필요 부분 (0) 2022.02.27 AzureWebApp에 ASP(.NETFramework)로 CI/CD - 1 연결 기초 (0) 2022.02.21 - 가장 최상단에