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
Você também pode utilizar um Projeto já existente.
2. Gerar o Personal Access Token no Azure DevOps
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.
- Acesse a sua conta pelo endereço:
https://dev.azure.com/{Your_Organization}e faça o login; - Clique em 'User Settings' e, em seguida, clique no botão 'Personal access tokens';
- 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;
- 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:
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.ymltrigger: 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.
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.