ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AzureWebApp에 ASP(.NETFramework)로 CI/CD - 1 연결 기초
    GitHub 2022. 2. 21. 12:00
    728x90

    Azure Web Apps에 GitHub ACTIONS 연결 기초

    Azure Actions로 가상머신에서 미리 테스트 실행한 프로젝트를 에러가 없으면 Azure Web App 에 업로드 까지 자동으로 해주는 과정의 기초다 문제는 .Net FrameWork는 msbuild라는 명령어를 사용해야 하는데 현재는 거의 자료가 없는 관계로 프로젝트 파일이 늘어날때마다 고생할 것으로 보인다.

    연결 과정 설명

    1. 웹 프로젝트(.Net FrameWork) 생성(프로젝트 생성방법의 설명은 생략하겠다. VS에서 평범하게 생성하자 일단 별도의 프로젝트를 추가하지는 말자)
    2. Git 변경 내용 창에서 Git 레포지트리 만들기를 눌러 현재 프로젝트를 Git에 업로드한다.(Visual Studio용 Git Ignore 파일도 생성해두는게 좋다)
    ![image](https://user-images.githubusercontent.com/39551265/154828170-e97d4407-9668-41e4-bba3-61f7ece27f0e.png)
    1. Git Hub에 잘 업로드 됬는지 확인한다(Git Hub 사용법 자체는 여기서는 생략하겠다.)
    2. Azure Potal에 접속해보자
    3. 리소스 만들기 클릭
    4. 웹 앱 바로 아래의 만들기 클릭
    5. 기본 페이지에 필수 항목 기재 이때 런타임 스택을 ASP.Net V4.8 를 선택하자(https://docs.microsoft.com/ko-kr/learn/modules/host-a-web-app-with-azure-app-service/?WT.mc_id=azureportalcard_Service_App%20Services_-inproduct-azureportal)
    6. 다음: 배포 > 클릭
    7. 지속적인 배포의 설정을 사용으로 변경하자
    8. Git Hub 계정을 연결
    9. 조직은 현재 Git Hub에 속한 조직중에서 선택
    10. 레포지터리는 방금 만든 프로젝트를 업로드한 곳을 선택
    11. 분기는 master 혹은 업로드시에 사용할 별도의 분기를 사용하자(master를 선택하면 master에서 Push가 일어날시 Azure Apps에 업로드하도록 설정된다)
    12. 전부 기입했으면 워크플로 구성을 확인하자 아래와 비슷할 것이다.
    13. # 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: .
    
    15. 만들기를 클릭
    16. 생성된 웹 리소스를 확인한다.
    17. 현재 GitHub master 에서 Push를 한 것이 없어서 아무 설명이 없을 것이다.
    18. VS에서 Pull을 해보자 .GitHub/WorkFlows 폴더에 yml파일이 생성된걸 확인할 수 있다
    19. 적당히 소스를 변경후 master에 Push를 해보자(주석등을 늘려서)
    20. [Git Hub](https://github.com/)에 접속해 프로젝트가 포함된 레포지터리에 들어간다.
    21. 상단 메뉴창 중 Actions로 들어간다.<br>
    ![image](https://user-images.githubusercontent.com/39551265/154828179-0f63e5c0-d1ca-445e-8863-277b9a527f06.png)
    
    22. 방금 push할때 Commit 내용으로 WorkFlow가 추가된 것을 확인할 수 있다.<br>
    ![image](https://user-images.githubusercontent.com/39551265/154828181-d34fbf91-babb-4aa2-aea0-b8a0e92ca7fe.png)
    
    23. Commit 내용을 클릭해 WorkFlow를 자세히 확인하자(이때 Push한지 얼마 안됬다면 내용 앞의 아이콘이 다를 것이다)
    24. 눌러확인하면 Linux에서 작성된 yml 파일을 읽어 실행되고 있는걸 확인할 수 있다.
    25. 아무 에러가 없다면 Azure에까지 업로드가 되었을 것이다. 다시 Azure Potal로 돌아가 해당 리소스로 돌아가서 생성된 웹 앱 주소로 들어가 확인하다.
    26. 19번 과정부터 이후까지를 반복해 실제로 업로드가 되는지 확인하면 된다.
    
    728x90
    반응형

    댓글

Designed by Tistory.