Pular para o conteúdo principal

Azure DevOps

A integração do seu SCM com a StackSpot traz alguns benefícios para as equipes e podem ser executados remotamente via pipeline de CI/CD.

Pré-Requisitos

1. Criar o repositório para as pipelines

Para integrar o SCM com a StackSpot, o primeiro passo é criar um repositório próprio da sua organização para as pipelines. Desta forma, quando elas forem definidas você poderá acioná-las remotamente via API informando os dados de entrada para cada fluxo.

Você pode acessar o Azure DevOps com uma conta Microsoft ou GitHub. Em seguida, crie uma organização e um projeto:

No Azure DevOps, sua Organização será equivalente ao seu nome de usuário e seu projeto ao nome do seu repositório. Para acessá-los você deve utilizar a URL a seguir:

https://dev.azure.com/[ORGANIZATION-NAME]/[PROJECT-NAME]

Considere os dados a seguir:

  • Organization name: nome que você definiu para o seu usuário.
  • Project Name: nome que você definiu para o seu repositório.

Exemplo:

https://dev.azure.com/my-username/my-workflow-repo

Informação Adicional

Você também pode utilizar um Projeto já existente.

2. Gerar o Personal Access Token no Azure DevOps

Cuidado!

Dentro da sua Organização, o usuário que tem a permissão de gerar o token está dentro do grupo ‘Project Collection Administrators’. Para confirmar se você tem essa permissão, acesse a seção ‘Permissions’ da Azure.

  1. Acesse a sua conta pelo endereço: https://dev.azure.com/{Your_Organization} e faça o login;
  2. Clique em 'User Settings' e, em seguida, clique no botão 'Personal access tokens';
  3. Clique no botão 'New Token' e preencha os campos a seguir:
  • Name: informe um nome para o token;
  • Organization: selecione a sua Organização;
  • Expiration (UTC): selecione ou defina uma data de expiração para o token;
  • Scopes: selecione entre 'Full access' para acesso total ou 'Custom defined' para escolher as permissões. Se você escolher 'Custom defined', marque os itens a seguir:
    • Auditing: Read Audit Log;
    • Build: Read & execute;
    • Code: Read & Write;
    • Packaging: Read & Write;
    • Pipeline Resources: Use & manage;
    • Project and Team: Read, write & manage.
    • Release: Read, write & execute;
    • Services Connections: Read, query & manage;
  1. Para concluir, clique no botão 'Create'. O código do token será exibido temporariamente. Copie e salve o código gerado.

Criar o repositório e pipelines manualmente

Os passos a seguir são feitos via STK CLI;
Para criar as pipelines automaticamente, você precisa cumprir todos os pré-requisitos:

  1. Criar o seu repositório;
  2. Criar o personal access token do Azure DevOps.

Passo 1. No terminal STK CLI, execute os comandos a seguir:

mkdir <repo-name>
cd <repo-name>

Exemplo:

mkdir repo-runner-actions
cd repo-runner-actions

Passo 2. Dentro da pasta que você criou, crie o arquivo "stackspot.yml" com o conteúdo a seguir:

stackspot.yml
trigger: none

pr: none

parameters:
- name: workflow_execution_id
displayName: Workflow Execution ID
type: string
default: ''

- name: workflow_inputs
displayName: Workflow Inputs
type: string
default: ''

variables:
LANG: 'C.UTF-8'
LANGUAGE: 'C.UTF-8'
LC_ALL: 'C.UTF-8'
PYTHONIOENCODING: 'utf-8'
HTTP_ENABLE_DEBUG: 'false'

stages:
- stage: ResumeWorkflow
displayName: Stackspot Resume Workflow
jobs:
- job: RunWorkflow
displayName: Run workflow
pool:
vmImage: 'ubuntu-latest'
steps:
- script: |
cd /tmp
curl -fsSL https://stk.stackspot.com/install.sh | bash
echo "~/.stk/bin" >> $HOME/.bashrc
~/.stk/bin/stk --version
~/.stk/bin/stk upgrade
displayName: '[StackSpot] Install CLI'

- script: ~/.stk/bin/stk login -id $(STK_CLIENT_ID) -key $(STK_CLIENT_KEY) -r $(STK_REALM)
displayName: '[StackSpot] Login'

- script: ~/.stk/bin/stk resume workflow ${{ parameters.workflow_execution_id }}
displayName: '[StackSpot] run workflow'

Passo 3. Faça o commit das alterações utilizando os comandos a seguir:

git init
git remote add origin https://<org>@dev.azure.com/<org>/<project_name>/_git/<repo_name>
git add .
git commit -m "Setup Runner"
git push

Exemplo:

git init
git remote add origin https://stackspot-azure@dev.azure.com/stackspot-azure/stackspot/_git/stackspot
git add .
git commit -m "Setup Runner"
git push

Cadastrar o arquivo stackspot.yml na pipeline da Azure DevOps

Após a criação do repositório e das pipelines dos passos anteriores, você deve cadastrar a pipeline: stackspot. Para isso, acesse a sua Organização na Azure DevOps e siga os passos a seguir:

Passo 1. Entre no projeto onde está o repositório utilizado no passo anterior;

Passo 2. No menu, clique em **'Pipelines'**e, em seguida, clique no botão 'New pipeline';

Passo 3. Selecione a opção 'Azure Repos Git';

Passo 4. Selecione o repositório criado anteriormente para ser o repositório responsável por criar a Pipeline;

Passo 5. Clique em 'Existing Azure Pipelines YAML file'. Em seguida, na opção 'Path', selecione o arquivo /stackspot.yml;

Passo 6. Na tela Review your pipeline YAML, clique no botão 'Variables' e, em seguida, em 'New variable';

Passo 7. Você deve cadastrar duas variáveis. A primeira deve ter os valores a seguir:

  • Name: informe exatamente o nome secret_cli_login;
  • Value: não preencha nenhum valor;
  • Marque as duas checkbox:
    • 'Keep this value secret';
    • 'Let users override this value when running this pipeline'.
      Clique no botão 'OK' para finalizar.

Passo 8. Na mesma tela, repita o processo. Clique no botão 'Variables' e, em seguida, em 'New variable':

  • Name: informe exatamente o nome secret_git;
  • Value: não preencha nenhum valor;
  • Marque as duas checkbox:
    • 'Keep this value secret';
    • 'Let users override this value when running this pipeline'.
      Clique no botão 'OK' e, em seguida, no botão 'Save' para finalizar.

Passo 9. A pipeline é criada com um nome aleatório, mas você deve renomear a pipeline para o nome: 'stackspot'. Para isso, acesse novamente a opção Pipelines e depois clique na opção 'all';

Passo 10. Localize a pipeline gerada, clique no botão 'more options' e depois em 'Rename/move pipeline';

Passo 11. No campo 'Name' digite 'stackspot' e, em seguida, clique no botão 'Save'.

Agora você precisa ter a URL do projeto para ser utilizada no processo de integração a seguir.

Integrar o Azure DevOps com a StackSpot

Os passos a seguir são feitos no Portal da StackSpot.

Configurar via Azure DevOps PAT (Personal Access Token)

Passo 1. Acesse diretamente o Portal da Conta; Em seguida, clique no botão Configurar Integração SCM’;

Passo 2. No campo Selecionar provedor, selecione a opção Azure DevOps;

Passo 3. Em Método de autenticação, selecione a opção PAT (Personal Access Token) e preencha os campos a seguir:

  • Usuário: o nome do seu usuário no Azure DevOps;
  • Token: utilize o seu Personal Access Token do Azure DevOps que você gerou anteriormente.

Passo 4. Em Configuração de Workflow, escolha como a organização deseja gerenciar o acesso ao SCM. Para isso, habilite ou desabilite a opção 'A organização vai gerenciar o acesso ao SCM via User PAT?':

  • Habilitado: o usuário vai gerenciar o acesso ao Azure DevOps via PAT (Personal Access Token).
  • Desabilitado: a empresa vai gerenciar o acesso ao Azure DevOps.
Informação Adicional

Ao habilitar este botão, cada membro da sua Conta deve configurar o próprio Acesso de SCM.

Passo 5. No campo URL do Workflow, insira a URL do repositório criado com as pipelines para a StackSpot identificar onde o seu Workflow está configurado. Por exemplo: https://dev.azure.com/myazure-user/scm-azure-pipes.

Passo 6. Você será redirecionado para a tela de Review. Confira seus dados e clique no botão 'Integrar com StackSpot'.

Pronto, sua configuração está completa.