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

2016-01-25 21_48_25-Greenshot

Em seguida é digitando ‘tfx’ no console o retorno deverá ser os comando disponíveis com a ferramenta:

2016-01-25 21_50_22-Command Prompt

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.

2016-01-25 23_00_39-Greenshot

No wizard vá até Server Roles (1) > Web Server > Security (2), e verifique se Basic Authentication está instalada e habilitada.

2016-01-25 23_02_16-Greenshot

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).

2016-01-26 02_32_16-Greenshot

Desabilite a Windows Authentication (1) e habilite Basic Authentication (2), tenha certeza de estar na aplicação do ‘tfs’ (3).

2016-01-25 23_03_37-Greenshot

É 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 Winking smile

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.

2016-01-26 00_52_58-Command Prompt

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

2016-01-26 01_38_44-Command Prompt

  • 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

http://semver.org/