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:
- Possuir uma conta Enterprise no Portal da StackSpot.
- Criar ou usar uma credencial de serviço.
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:
- Variáveis de ambiente no Windows
- Variáveis de ambiente em sistemas Linux e MacOS
- Na barra de tarefas, pesquise por "variáveis" e acesse a opção "Editar as variáveis de ambiente";
- 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
- No terminal, execute o comando a seguir para abrir o arquivo
.bashrc
:
nano ~/.bashrc
Ou abra o arquivo com um editor de texto de sua preferência.
- Ao final do arquivo, digite todas as variáveis da seguinte forma:
export LANG=C.UTF-8
export LANGUAGE=C.UTF-8
export LC_ALL=C.UTF-8
export PYTHONIOENCODING=utf-8
- Salve e feche o arquivo. Em seguida, volte ao terminal e execute o comando para aplicar as mudanças:
source ~/.bashrc
Se você quiser conferir as variáveis de ambiente, digite no terminal o seguinte comando:
printenv
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:
steps:
- name: Install StackSpot
run: |
curl -fsSL https://stk.stackspot.com/install.sh | bash && exec $SHELL
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.
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'.
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:
Adicione o comando sem as chaves <
>
stk login --client-id <ID> --client-key <KEY> --realm <REALM>
Cadastre seu Token como segredo em Actions do GitHub**
Exemplo:
Client ID
comoCLIENT_ID
no segredo;Client Key
comoCLIENT_KEY
no segredo;Realm
comoCLIENT_REALM
no segredo;
E use na sua pipeline:
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:
- Configure as GitHubs Secrets;
- [Opcional] Adicione os comandos do STK CLI que você precisar;
- [Opcional] Altere o campo
name: Run CLI Commands
para mudar o nome do Workflow e o campoon: [push]
para alterar quando ele é executado.
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 }}