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 antes possuir uma conta StackSpot Enterprise.

Requisitos

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

dica

A instalação ainda é possível sem uma conta Enterprise, mas você não terá acesso aos recursos exclusivos para contas Enterprise.

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-Variavel

Exemplo:

Nome da variável: NOME

Valor da variável: valor-Variavel


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 para instalar a StackSpot:

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 com um tempo de expiração configurável, para usar o STK CLI via linha de comando, como por exemplo, em pipelines de CI/CD.

atenção

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

Authorize Access Token page

Generate the Client ID and 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 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;
GitHub Actions Secrets

E use na sua pipeline:

pipeline step with GitHub secrets example
steps:
- name: Config login
with:
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_KEY: ${{ secrets.CLIENT_KEY }}
CLIENT_REALM: ${{ secrets.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 as GitHubs 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