프라이빗 러너와 함께 GitHub 작업을 사용하여 IIS에 배포
TL;DR PowerShell 스크립트와 동일하게 실행됩니다.
예시
이를 테스트하기 위해 여기에서 예제 애플리케이션repo을 사용했습니다(액션도 찾을 수 있음). 다음 dotnet 명령을 기반으로 합니다.
dotnet new webapp
흐름
이는 .NET Core 애플리케이션이므로 GitHub Actions의 워크플로에는 다음 단계가 있습니다.
dotnet new webapp
해당 워크플로here를 찾을 수 있습니다. 💡 애플리케이션을 Azure App Service에 푸시하는 워크플로를 보려면 옆에 있는
dotnetcore.yml
파일을 확인하세요.설정
IIS 명령을 실행하기 위해 가장 간단한 예를 사용했으며 다른 명령줄 옵션도 작동합니다.
동작
애플리케이션을 '배포'하는 실제 작업은 다음과 같습니다.
- name: Deploy to IIS
run: |
iisreset /stop
Copy-Item ./dotnetcorewebapp/* C:/inetpub/wwwroot/dotnetcore-webapp -Recurse -Force
iisreset /start
참고: 이 단계를 실행하려면 관리자 수준 액세스 권한이 필요하므로 해당 액세스 수준으로 자체 호스팅 러너를 실행해야 합니다. 이는 해당 수준의 액세스가 필요한 AppExec 명령에서 비롯됩니다(여전히 불행한 일입니다).
비공개 GitHub 작업 실행기
Windows 상자에서 애플리케이션 배포를 활성화하려면 클라우드 호스팅 러너가 해당 시스템에 액세스할 수 없기 때문에 private GitHub action runner을 사용해야 합니다(그러면 안 됩니다!). 예를 들어 Azure DevOps와 같은 일반 러너처럼 설치할 수 있습니다. 다행스럽게도 프록시/허용 목록에 추가해야 하는 URL 목록은 목록보다 훨씬 짧습니다.
러너는 요청 시 또는 Windows 서비스로 실행되며 주기적으로 GitHub에 대한 긴 폴링 연결을 열어 수행할 작업이 있는지 묻습니다. 연결은 항상 나가는 포트 443입니다.
러너 설치는 웹 사이트의 리포지토리, 팀 또는 조직 수준에서 수행할 수 있습니다. "설정"-> 작업으로 이동하고 자체 호스팅 러너까지 아래로 스크롤합니다.
러너를 추가하는 것은 매우 쉽습니다. 일회성 인증 프로세스에 사용하는 임시 토큰을 포함하여 모든 단계가 화면에 바로 나열됩니다.
보너스
다음 질문은 그러한 러너를 사용하여 Selenium WebTest(이런 유형의 종단 간 테스트라고 함)를 실행할 수 있고 그것이 호스팅된 러너에서도 작동하는지 여부였습니다. 간단히 말해, 그냥 작동합니다.
두 가지workflows 모두에서 러너에 설치된 Chrome 인스턴스와 통신하기 위해 Selenium 드라이버를 사용하는 WebTest 프로젝트에서 단위 테스트를 실행하는 마지막 단계인 '웹 테스트 실행'을 추가했습니다. 사전 설치된 모든 소프트웨어는 호스팅된 러너here에서 찾을 수 있습니다.
Reference
이 문제에 관하여(프라이빗 러너와 함께 GitHub 작업을 사용하여 IIS에 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rob_bos/use-github-actions-with-a-private-runner-to-deploy-to-iis-2f3f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)