Compartilhar via


Criando scripts de implantação para fluxos de trabalho compilar-implantar-testar

 

Publicado: abril de 2016

Para implantar seu aplicativo com um fluxo de trabalho compilar/implantar/testar, você deve criar scripts de implantação e adicioná-los à sua compilação. Os scripts de implantação são arquivos BAT ou CMD que copiam sua compilação para computadores em seu ambiente de laboratório. Se sua compilação incluir um pacote de instalação, você também poderá usar seus scripts de implantação para executar o pacote de instalação. Quando cria o fluxo de trabalho compilar/implantar/testar, você adiciona os comandos ao fluxo de trabalho que executam os scripts de implantação. Quando você executa seu fluxo de trabalho, o controlador de compilação executa esses comandos no diretório de trabalho nos computadores especificados em seu ambiente de laboratório.

Consulte Criar um fluxo de trabalho compilar-implantar-testar para um ambiente SCVMM ou Criar um fluxo de trabalho compilar-implantar-testar para um ambiente padrão. Essas seções descrevem como criar e usar scripts de implantação com seu fluxo de trabalho compilar/implantar/testar:

  • Preparando arquivos de compilação para implantação

  • Escrevendo seus scripts de implantação

  • Compilando seus scripts de implantação

  • Configurando diretórios de trabalho

  • Adicionando scripts de implantação a seu fluxo de trabalho

Para obter mais exemplos, consulte automatizar os testes de sistema

Requisitos

  • O Visual Studio Enterprise, Visual Studio Test Professional

Preparando arquivos de compilação para implantação

A maneira como você opta por instalar o aplicativo determinará as principais tarefas que os scripts de implantação precisarão realizar. Instalar o aplicativo pode envolver somente copiar um EXE para um computador cliente ou pode envolver executar um pacote de implantação que instale arquivos em vários computadores. A tabela a seguir descreve essas tarefas para cada tipo de implantação.

Importante

Se seu aplicativo depender de software de pré-requisito que não está instalado e configurado por seus scripts de implantação antes do aplicativo ser implantado, você deverá instalá-lo manualmente quando preparar os computadores em seu ambiente de laboratório.Se estiver usando um ambiente SCVMM que implante instantâneos de ambiente, você deverá garantir que os instantâneos tenham o software de pré-requisito instalado.

Tipo de instalação

Descrição

Pacote de implantação do serviço Web

System_CAPS_warningAviso

Se você estiver implantando um aplicativo que use o IIS, o servidor IIS em seu ambiente de laboratório deverá ter o Serviço do Agente de Implantação da Web configurado antes de implantar seu aplicativo

Os scripts de implantação devem copiar seus arquivos de compilação e o pacote de implantação para os computadores de destino em seu ambiente de laboratório e executar o pacote de implantação. Para fazer isso, você talvez precise passar um nome de domínio, um nome de conta de serviço e um nome de servidor TFS para seu script de implantação como parâmetros. Esse tipo de instalação normalmente requer que você instale e configure manualmente o software de pré-requisito como um servidor Web ou um servidor de banco de dados antes de implantar seu aplicativo. A configuração do software de pré-requisito pode exigir tarefas específicas que habilitem a implantação de aplicativo no computador de destino. Por exemplo, se o aplicativo usar o IIS, o servidor IIS em seu ambiente de laboratório deverá ter o Serviço do Agente de Implantação da Web configurado antes de implantar seu aplicativo.

Arquivos de compilação sem pacote de instalação

Os scripts de implantação devem copiar os arquivos de aplicativo e compilação para os computadores de destino em seu ambiente de laboratório.

Pacote de instalação

System_CAPS_warningAviso

Se você estiver implantando um pacote de instalação com seu fluxo de trabalho compilar/implantar/testar, seus scripts de implantação deverão identificar toda entrada do usuário gerada quando executam o pacote de instalação, ou a implantação do aplicativo falhará.

Os scripts de implantação devem copiar seu pacote de instalação para os computadores de destino em seu ambiente de laboratório e executar o pacote de instalação. Quando seus scripts de implantação executarem o pacote de instalação, eles deverão garantir que se trata de uma instalação silenciosa. A entrada do usuário solicitada pela instalação deve ser identificada por seus scripts de implantação. Isso inclui credenciais. Se os scripts de implantação não controlarem toda a entrada do usuário gerada quando executam o pacote de instalação, a implantação do aplicativo falhará. Se você não estiver implantando um aplicativo Web e precisar de um pacote de instalação para a implantação, recomendamos que você use um pacote de instalação InstallShield. Para obter informações sobre o InstallShield, consulte implantação do Windows Installer.

Escrevendo seus scripts de implantação

Essas são as tarefas mais comuns realizadas por scripts de implantação:

  • Obtenha o caminho de compilação no controlador de compilação. Você pode enviá-lo para seu script de implantação como um argumento de comando.

  • Especifique seu caminho de implantação.

  • Crie seu diretório de implantação. Você também pode fazer isso manualmente, e não em seu script de implantação. Se estiver usando o instantâneo do ambiente de pré-implantação com seu fluxo de trabalho, você precisará apenas criar o diretório nas máquinas virtuais no instantâneo.

  • Copie o pacote de implantação do caminho de compilação para o caminho de implantação.

  • Execute o pacote de implantação no diretório de implantação.

Os comandos a seguir demonstram algumas tarefas comuns realizadas por scripts de implantação.

REM set build path
set buildlocation=%1

REM set deployment path
set targetdir="C:\deploy"

REM create deployment directory
if not exist %targetdir% (cmd /c mkdir %targetdir%)

REM copy build to the deployment directory
xcopy /c /y /e %buildlocation%\*.* %targetdir%

REM if you are using a deployment package you can run it here, after you copy it to your deployment directory

Compilando seus scripts de implantação

Depois de criar seus scripts de implantação, você deverá verificá-los no controle de versão e configurá-los depois de modo que sejam copiados para sua saída de compilação. Para criar seus scripts de implantação, você deve primeiramente ter certeza de que eles estejam armazenados em seu projeto do Visual Studio, e não apenas em sua solução. Você pode fazer isso no Visual Studio selecionando o script de implantação no Gerenciador de Soluçõese, em Propriedades, alterando Diretório de Saída de Impressão para Copiar sempre.

Configurando diretórios de trabalho

Você pode especificar um diretório de trabalho para cada conjunto de comandos que adiciona ao fluxo de trabalho compilar/implantar/testar. Quando você especificar um diretório de trabalho, o controlador de compilação executará os comandos especificados no diretório de trabalho de cada computador atribuído à função. Se não especificar um diretório de trabalho ao adicionar comandos ao seu fluxo de trabalho compilar/implantar/testar, seu controlador de compilação executará os comandos no diretório de trabalho padrão−C:\Windows\System32.

Importante

Não crie diretórios de trabalho usando os comandos que você adiciona ao fluxo de trabalho compilar/implantar/testar; se você fizer isso, os diretórios não serão criados antes dos scripts de implantação tentarem copiar arquivos para esses diretórios.

Se especificar um diretório de trabalho, você deverá assegurar que o diretório seja criado antes dos scripts de implantação copiarem qualquer arquivo para esse diretório. Não crie diretórios de trabalho com os comandos usados para adicionar seus scripts de implantação ao fluxo de trabalho compilar/implantar/testar. Se você fizer isso, os diretórios não serão criados antes dos scripts de implantação tentarem copiar arquivos para os diretórios. Para garantir que um diretório de trabalho seja criado antes dos scripts de implantação copiarem arquivos para ele, você deve criar manualmente o diretório nos computadores de destino em seu ambiente de laboratório, ou o diretório deve ser criado por seus scripts de implantação antes de qualquer comando copiar arquivos para ele.

Adicionando scripts de implantação a seu fluxo de trabalho

Adicione comandos shell do Windows ao seu fluxo de trabalho compilar/implantar/testar para implantar seu aplicativo em seu ambiente de laboratório. Se você estiver usando scripts de implantação, os comandos deverão copiar seus scripts de implantação do controlador de compilação para o diretório de trabalho dos computadores de destino e executar os scripts de implantação. No entanto, para instalações de aplicativo simples que envolvam somente copiar alguns arquivos para o diretório de trabalho, você pode usar comandos shell em seu fluxo de trabalho sem especificar scripts de implantação externos.

Se quiser adicionar um comando executado em um prompt do Windows, como mkdir, ou executar um arquivo em lotes, você deverá começar o comando usando cmd /c. Por exemplo, o comando cmd /c $(BuildLocation)\copyexe $(BuildLocation), onde copyexe é o arquivo em lotes copyexe.bat, copia um executável para um diretório local em uma máquina virtual.

Variáveis internas: quando adiciona esses comandos ao seu fluxo de trabalho compilar/implantar/testar, você pode usar variáveis internas para identificar determinados caminhos e computadores. Você também pode passar essas variáveis para seus scripts de implantação.

  • $(BuildLocation)
    O caminho completo onde os arquivos de compilação estão, ou o local de destino da compilação, se algum estiver configurado no fluxo de trabalho compilar/implantar/testar. Use essa variável para acessar os arquivos de compilação.

  • $(InternalComputerName_<VM Name>)
    O nome do computador para uma máquina virtual em um ambiente SCVMM. Use essa variável para acessar um host de máquina virtual quando você não souber o nome de computador do host. Se tiver um script de implantação para configurar um servidor Web que exija o nome de computador, você poderá passá-lo como um argumento ao script. Por exemplo, se o nome da máquina virtual do servidor Web fosse VM1 e o nome do computador fosse MyWebServer, você digitaria $(InternalComputerName_VM1) como o argumento para seu script e ele passaria o valor MyWebServer para seu script.

  • $(ComputerName_<VM Name>)

    Dica

    Isolamento da rede em ambientes SCVMM: se você estiver usando isolamento de rede no ambiente SCVMM, o valor de $(InternalComputerName_<VM Name>) será o mesmo para uma instância de uma máquina virtual em cada cópia do ambiente, mas o valor de $(ComputerName_<VM Name>) será diferente.

    O nome de domínio totalmente qualificado do computador virtual. Use essa variável para acessar um computador fora de um ambiente SCVMM. Talvez você queira passar essa variável como um argumento para configurar um servidor Web. Por exemplo, se o nome da máquina virtual do servidor Web for VM1, você poderá acessar o nome de domínio totalmente qualificado da máquina virtual passando o argumento $(ComputerName_VM1) para seu script de implantação.

Consulte também

Fluxos de trabalho compilar-implantar-testar automatizados
automatizando os testes de sistema