Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

SampleDeployIISApi

C# ASP.NET Core GitHub Actions IIS MIT License

Descrição

SampleDeployIISApi é um projeto de exemplo desenvolvido em ASP.NET Core, criado para demonstrar como configurar um pipeline de CI/CD utilizando GitHub Actions para deploy automatizado em um servidor IIS no Windows. Este projeto é uma referência prática para configurar o GitHub Actions, parando e iniciando o site e o pool de aplicativos do IIS durante o processo de deploy.

Requisitos

Instalação

  1. Clone o repositório:

    git clone https://github.com/LucasBLs/SampleDeployIISApi.git
    cd SampleDeployIISApi
  2. Configure o GitHub Runner:

    • Siga as instruções da documentação do GitHub para configurar o runner.
    • Durante a configuração, escolha rodar o runner como um serviço utilizando o usuário NT AUTHORITY\SYSTEM.

Configuração do GitHub Actions

O arquivo de configuração do GitHub Actions (.github/workflows/deploy.yml) deve estar configurado para parar o site e o pool de aplicativos do IIS antes do deploy e iniciá-los após o deploy. Aqui está um exemplo básico:

name: Deploy to IIS  # Nome do workflow.

on:
  push:
    branches:
      - main  # Define quando o workflow deve ser acionado (neste caso, em push para o branch main).

jobs:
  build:
    runs-on: self-hosted  # Define o ambiente no qual o trabalho será executado.

    steps:
      - uses: actions/checkout@v2  # Faz o checkout do repositório.

      - name: Restore dependencies
        run: dotnet restore  # Executa dotnet restore para restaurar dependências.

      - name: Build
        run: dotnet build --no-restore  # Executa dotnet build para compilar o projeto sem restaurar as dependências.

      - name: Publish
        run: dotnet publish -c Release -o C:\actions-runner\site  # Executa dotnet publish para publicar o projeto na pasta especificada.

      - name: Stop IIS site and pool
        run: | # Importa o módulo WebAdministration e para o site no IIS.
          Import-Module WebAdministration
          Stop-WebAppPool -Name "SeuPool"
          Stop-WebSite -Name "SeuSite"  

      - name: Deploy
        run: |  # Remove os arquivos antigos e copia os novos arquivos para o diretório do IIS.
          Remove-Item -Recurse -Force C:\inetpub\wwwroot\SeuSite\*
          Copy-Item -Path C:\actions-runner\site\* -Destination C:\inetpub\wwwroot\SeuSite -Recurse 

      - name: Start IIS site and pool
        run: | # Importa o módulo WebAdministration e inicia o site no IIS.
          Import-Module WebAdministration
          Start-WebAppPool -Name "SeuPool"
          Start-WebSite -Name "SeuSite"  

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages