https://github.com/ericogr/alm-azure-build-ondemand
Ao executar push no repositório, será dispara a integração continua. Este processo executa o disparo de um gatilho pelo TFS ao serviço function do azure que inicia uma máquina virtual e dispara o build nesta máquina.
https://github.com/ericogr/alm-azure-build-ondemand
tfs
Last synced: 7 months ago
JSON representation
Ao executar push no repositório, será dispara a integração continua. Este processo executa o disparo de um gatilho pelo TFS ao serviço function do azure que inicia uma máquina virtual e dispara o build nesta máquina.
- Host: GitHub
- URL: https://github.com/ericogr/alm-azure-build-ondemand
- Owner: ericogr
- License: mit
- Created: 2017-02-17T12:36:34.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-02-23T17:46:07.000Z (over 8 years ago)
- Last Synced: 2025-01-20T12:07:35.459Z (9 months ago)
- Topics: tfs
- Language: JavaScript
- Size: 15.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Build automatizado sob demanda (teste)
A ideia é criar integração contínua em um ambiente on-premise com uma máquina virtual no Azure sob-demanda, poupando recursos (dinheiro) enquanto a máquina está desligada (deallocated).
## O Processo
Ao realizar check-in, será disparado um gatilho pelo TFS (Service Hooks) ao serviço "Function" do Azure, que inicia uma máquina virtual e dispara o build nesta máquina.
Ao concluir o build, o TFS dispara outro gatinho (Service Hooks) ao serviço "Function" do Azure para desligar (deallocate) a máquina.## Requisitos
* Conta Azure
* TFS 2015 ou mais atual
* Permissão na conta azure e TFS para criação de hooks, serviços, etc## Azure
### Virtual Machine
* Prapare sua VM instalando os requisitos necessários para compilar a aplicação
* Instale o Agente de build do tfs
* Configure o agente de build### Function
* Criar um grupo de recursos "build-poc"
* Criar o Serviço de aplicativos do tipo "Aplicativo de funções" (na busca digite função)
* Nomear p nome do aplicativo para "tfs-build-machine"
* Associar com o grupo de recursos "build-poc" (a criação pode demorar alguns instantes)
* Configurar a integração contínua apontando para este repositório github
* Abrir o arquivo alm-azure-build-ondemand/parameters.js e ajustar de acordo com seu ambiente
Obs: Os nomes não estão fixos no código, podemos alterar nos parâmetros de ambiente### Links
https://docs.microsoft.com/en-us/azure/azure-functions/functions-continuous-deployment
## TFS
Em seu projeto, criar um Service Hook do tipo "Code Checked in" e outro do tipo "Build complete", especificar o filtro desejado e a url de sua function.
## Parâmetros de ambiente
```sh
AZURE_CLIENT_ID=
AZURE_SECRET=
AZURE_DOMAIN=
AZURE_SUBSCRIPTION_ID=
AZURE_VM_RESOURCE_GROUP_NAME=
AZURE_VM_NAME=
TFS_PROJECT_URL=
TFS_USERNAME=
TFS_PASSWORD=
TFS_WORKSTATION=
TFS_DOMAIN=
TFS_START_DELAY=
TFS_BUILD_ID=
TFS_BUILD_SOURCE_BRANCH=
TFS_BUILD_PARAMETERS=
```## Exemplo
```sh
AZURE_CLIENT_ID=00000000-0000-0000-0000-000000000000
AZURE_SECRET=senha
AZURE_DOMAIN=dominioxpto.onmicrosoft.com
AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
AZURE_VM_RESOURCE_GROUP_NAME=build-poc
AZURE_VM_NAME=build-generic
TFS_PROJECT_URL=http://xpto.server.com.br:8080/tfs/DefaultCollection/Projeto
TFS_USERNAME=usernameDeRede
TFS_PASSWORD=senhaDeRede
TFS_WORKSTATION=maquinax
TFS_DOMAIN=empresa
TFS_START_DELAY=180000
TFS_BUILD_ID=1
TFS_BUILD_SOURCE_BRANCH=$/Projeto/Xpto/main
TFS_BUILD_PARAMETERS={"system.debug":"false","BuildConfiguration":"release","BuildPlatform":"any cpu"}
```### TODO
Evoluir o script para atender a outros cenários e ambientes