Pular para o conteúdo principal

Instalação em Pipelines

Nesta seção, você encontra como instalar o STK CLI via pipelines.


Para instalar e autenticar o STK CLI em uma pipeline, você precisa ter uma conta StackSpot.

Requisitos

Confira os requisitos para usar o STK CLI em uma pipeline CI/CD:

Instalação em um runner próprio

1. Configure as variáveis de ambiente

Para garantir o correto funcionamento do STK CLI, principalmente nos runners da sua pipeline, configure as seguintes variáveis de ambiente em sua pipeline:

LANG=C.UTF-8
LANGUAGE=C.UTF-8
LC_ALL=C.UTF-8
PYTHONIOENCODING=utf-8

Confira a documentação do seu serviço de CI/CD:

Configure também as variáveis de ambiente em seu sistema:

  1. Na barra de tarefas, pesquise por "variáveis" e acesse a opção "Editar as variáveis de ambiente";
  2. Na janela que abrir, clique na opção "Novo...". Em seguida, preencha o nome e valor da variável e clique em "OK";


O nome e valor das variáveis seguem o padrão:

NOME: valor-Variável

Exemplo:

Nome da variável: NOME

Valor da variável: valor-Variável


Repita o preenchimento para todas as variáveis:

LANG: C.UTF-8
LANGUAGE: C.UTF-8
LC_ALL: C.UTF-8
PYTHONIOENCODING: utf-8

2. Instalar pacotes no seu runner

Os seguintes pacotes devem estar instalados em seu runner:

  • jq;
  • curl;
  • git.

Exemplo:

Confira a instalação da ferramenta jq em um runner Linux no GitHub:

name: Build on Ubuntu
on: push

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install jq tool
run: |
sudo apt-get update
sudo apt-get install jq

Para mais exemplos, acesse a documentação do GitHub sobre personalizar runners.

Instalação via curl na pipeline

Utilize nos passos da sua pipeline o código a seguir para instalar o STK CLI:

curl -fsSL https://stk.stackspot.com/install.sh | bash && exec $SHELL

Exemplo:

pipeline step example.
steps:
- name: Install StackSpot
run: |
curl -fsSL https://stk.stackspot.com/install.sh | bash && exec $SHELL
Atenção!

A instalação via curl também funciona para uso local mas apenas em sistemas Unix, como Linux e MacOS.

Autenticar via CI/CD

As contas Enterprise suportam a autenticação do STK CLI via linha de comando, utilizando um client id e um client key.

Esse tipo de autenticação possibilita manter uma sessão ativa por um tempo de expiração pré-definido, para usar o STK CLI via linha de comando, como por exemplo, em pipelines de CI/CD.

perigo

O tempo de expiração da sessão atualmente é de 20 minutos. Em breve esse valor será configurável através do Portal da StackSpot.

Obter as chaves e autenticar pela pipeline

Para autenticar pela pipeline, é necessário obter no Portal StackSpot as chaves para serem informadas na pipeline junto do comando stk login. Para isso, siga os passos:

Passo 1. Faça o login no Portal da StackSpot;

Passo 2. No menu de boas-vindas, acesse a opção Gerenciar Conta e em seguida, clique em Tokens de Acesso;

Passo 3. Autorize a utilização de Tokens e em seguida clique em 'Gerar Tokens'.

Página para autorizar o token de acesso

Tela para gerar o Client ID e o Client Key
Atenção!

As chaves são geradas por usuário da organização, se um usuário gerar uma nova chave a anterior automaticamente se tornará inválida. Gerar uma nova chave não invalida as chaves de outros usuários dessa organização.

Passo 4. Na sua pipeline, execute o comando substituindo os valores entre chaves pelos valores obtidos nos passos anteriores:

informação

Adicione o comando sem as chaves < >

stk login --client-id <ID> --client-key <KEY> --realm <REALM>
Dica!

Cadastre seu token de acesso como segredo em Actions do GitHub.

Exemplo:

  • Client ID como CLIENT_ID no segredo;
  • Client Key como CLIENT_KEY no segredo;
  • Realm como CLIENT_REALM no segredo;
Tela de configuração de segredos no GitHub Actions

E use na sua pipeline:

pipeline step with GitHub secrets example
steps:
- name: Configurar login
env:
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_KEY: ${{ secrets.CLIENT_KEY }}
CLIENT_REALM: ${{ secrets.CLIENT_REALM }}
run: |
stk login --client-id "$CLIENT_ID" --client-key "$CLIENT_KEY" --realm "$CLIENT_REALM"

Para obter mais detalhes, siga o uso de segredos na documentação do GitHub Actions.

Executar o STK CLI com GitHub-hosted runners

Se você for usar um GitHub-hosted runner para executar o STK CLI em seu Workflow, use o exemplo a seguir no arquivo da sua pipeline:

  1. Configure os GitHub Secrets;
  2. [Opcional] Adicione os comandos do STK CLI que você precisar;
  3. [Opcional] Altere o campo name: Run CLI Commands para mudar o nome do Workflow e o campo on: [push] para alterar quando ele é executado.
Exemplo de instalação em pipeline com o GitHub-hosted runner 'ubuntu-latest'
name: Run CLI Commands

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
env:
LANG: C.UTF-8
LANGUAGE: C.UTF-8
LC_ALL: C.UTF-8
PYTHONIOENCODING: utf-8

steps:
- name: Check out repository code
uses: actions/checkout@v4

- name: Download STK CLI
shell: bash
run: |
curl \
--fail \
--http2-prior-knowledge \
--location \
--output /tmp/stk.deb \
--silent \
--show-error \
--tlsv1.3 \
https://stk.stackspot.com/installer/linux/stk.deb

- name: Install STK CLI
shell: bash
run: |
sudo dpkg --install /tmp/stk.deb || echo "Installation failed with exit code: $?"

- name: Authenticate StackSpot
run: |
$HOME/.stk/bin/stk login --client-id ${{ secrets.CLIENT_ID }} --client-key ${{ secrets.CLIENT_KEY }} --realm ${{ secrets.CLIENT_REALM }}

Próximo passo