Semana passada escrevi sobre a mudança de tasks para steps, a arquitetura de build foi totalmente alterada; portanto o que se sabia para escrever na estrutura de uma definição de build não é mais válido. Agora que o build é “scriptado”, ele é escrito em Powershell, ou até mesmo em Node.js.
Na instalação on-prem não estão disponíveis todos os steps que se encontram na versão on-line, VSTS, e mesmo assim podemos querer criar steps específicos para um cenário. Esse vai ser o tema do post de hoje.
tfx-cli
Para fazermos o upload de um step criado vamos precisar desta ferramente: tfx-cli. Ela se encontra disponível no Github, a Microsoft tem feito muito uso deste serviço para disponibilizar o open-source que produz.
Se você ainda não sabe usar o Git, leia a minha série sobre o básico disponível aqui: http://egomesbrandao.com.br/category/git/
Mas também é possível instalar por NPM!
O NPM é um gestor de pacotes, tipo o Nuget, mas para Node.js. Não tem muito segredo a instalação, primeiro instalei o Node.js, você já terá o NPM no seu path. Digitando ‘npm’ você saberá se o comando já está disponível e no path.
Daí é só instalar o tfx-cli, para isso:
npm install -g tfx-cli
Em seguida é digitando ‘tfx’ no console o retorno deverá ser os comando disponíveis com a ferramenta:
Configuração
Para usarmos no VSTS é preciso gerar um token. Mas neste exemplo como vou conectar no TFS, e nele ainda não temos disponível o acesso via token, será preciso configurarmos a autenticação Básica.
Para isso é possível fazer através do Server Manager, clique em Add roles and features.
No wizard vá até Server Roles (1) > Web Server > Security (2), e verifique se Basic Authentication está instalada e habilitada.
Depois vá para o console do IIS. Navegue no menu, site Team Foundation Server (1), aplicação ‘tfs’ (2), e depois clique no ícone Authentication (3).
Desabilite a Windows Authentication (1) e habilite Basic Authentication (2), tenha certeza de estar na aplicação do ‘tfs’ (3).
É possível configurar para o tfx utilizar sempre a autenticação básica, experimente com o comando login, neste exemplo faremos diretamente no comando de upload.
VSTS-Assembly-Versioning
Para testar vamos utilizar um step pronto e útil criado pelo Ricardo Serradas, que contribui com a comunidade como ALM Ranger, no VSO Sprints e no #buildNoturno, que eu também faço parte
Esse step coloca o número de versão na dll, será preciso clonar o reposítório, o link é https://github.com/ricardoserradas/VSTS-Assembly-Versioning.
Após fazer o clone, vá para o console. É possível conseguir mais informações sobre o comando.
Para fazer o upload vamos usar o seguinte comando:
tfx build tasks upload –task-path . –auth-type basic –username vsalmbrian –password P2ssw0rd –service-url http://vsalm:8080/tfs
- tfx build tasks upload: é o comando que vai executar a ação que queremos
- –task-path: é o local onde está o arquivo .json, é ele que tem a estrutura do step, neste exemplo eu estava no próprio local, por isso só passei um ‘.’
- –auth-type basic: aqui é o que vai fazer funcionar o par de login e senha, por isso que fizemos aquela configuração acima
- –username: usuário do TFS com permissão para isso
- –password: senha
- –service-url: é a URL sem a Collection
Com este comando vamos poder subir as steps que vamos criar no futuro. Mas se você quiser novas steps e não quer esperar pode subir as que já estão disponíveis no VSTS! Elas também estão no Github: https://github.com/Microsoft/vso-agent-tasks. Se você tem um VSTS de teste, pode subir para lá essa step também!
Qual step você acha que está faltando ser escrita? Coloque no comentários, podemos começar a desenvovê-la no próximo post sobre build.
Para saber mais sobre versioning:
https://msdn.microsoft.com/en-us/library/51ket42z(v=vs.110).aspx
Emmanuel Brandão