Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
stages:
- rollback

variables:
CLIENT_ID: $CLIENT_ID
CLIENT_KEY: $CLIENT_KEY
CLIENT_REALM: $CLIENT_REALM
WORKSPACE: $WORKSPACE
ENVIRONMENT: $ENVIRONMENT
VERSION_TAG: $VERSION_TAG
TF_STATE_BUCKET_NAME: $TF_STATE_BUCKET_NAME
TF_STATE_REGION: $TF_STATE_REGION
IAC_BUCKET_NAME: $IAC_BUCKET_NAME
IAC_REGION: $IAC_REGION
VERBOSE: $VERBOSE
WORKDIR: $WORKDIR

rollback_job:
stage: rollback
image: python:3.10
script:
- echo "🤖 OS runner is $(uname)"
- echo "${TF_STATE_BUCKET_NAME}"
- echo "${IAC_REGION}"
- cat /etc/os-release
- uname -r
- ldd --version
- apt-get update && apt-get install -y curl
- curl -fsSL https://stk.stackspot.com/install.sh | bash
- $HOME/.stk/bin/stk login --client-id=$CLIENT_ID --client-key=$CLIENT_KEY --realm=$CLIENT_REALM
- pip install requests ruamel-yaml==0.17.33
- |
if [ $CI_RUNNER_OS != 'Windows' ]; then
python3 runtime.py
elif [ $CI_RUNNER_OS == 'Windows' ]; then
python runtime.py
else
echo "$CI_RUNNER_OS not supported"
exit 1
fi
artifacts:
paths:
- $WORKDIR
32 changes: 32 additions & 0 deletions README-gitlab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Runtime Rollback Action

## Descrição

Este pipeline realiza um rollback self-hosted para uma tag previamente implantada.

## Inputs

Os seguintes inputs devem ser configurados no GitLab CI:

- `CLIENT_ID`: Account client id (obrigatório)
- `CLIENT_KEY`: Account client secret key (obrigatório)
- `CLIENT_REALM`: Account client realm (obrigatório)
- `WORKSPACE`: Workspace usado para deploy (obrigatório)
- `ENVIRONMENT`: Ambiente usado para deploy (obrigatório)
- `VERSION_TAG`: Tag da versão para rollback (obrigatório)
- `TF_STATE_BUCKET_NAME`: Bucket para salvar arquivos tfstate gerados (obrigatório)
- `TF_STATE_REGION`: Região de configuração para tfstate (obrigatório)
- `IAC_BUCKET_NAME`: Bucket para salvar arquivos iac gerados (obrigatório)
- `IAC_REGION`: Região de configuração para iac (obrigatório)
- `VERBOSE`: Configuração de verbose (opcional)
- `WORKDIR`: Caminho para o diretório onde o `.stk` está localizado (opcional, padrão: `./`)

## Como usar

1. Configure os inputs acima como variáveis de ambiente no GitLab CI.
2. Adicione o conteúdo do arquivo `.gitlab-ci.yml` ao seu repositório.
3. Execute o pipeline para realizar o rollback.

## Compatibilidade

A maioria dos comandos e ferramentas utilizados são compatíveis com o GitLab CI. No entanto, certifique-se de que o ambiente de execução possui as dependências necessárias instaladas, como `curl` e `python3`.