
7 GitHub Actions
Para executar a atualização e preparação dos dados utilizados nos painéis e no relatório gerencial do CIGA-MPMG, existem diversos workflows que são executados pelo GitHub Actions.
Workflows são arquivos de configuração que definem um conjunto de ações executadas em uma máquina virtual disponibilizada pelo GitHub.
Nesta seção, mostramos com acionar manualmente um workflow, listamos as credenciais necessárias para executar esses processos e descrevemos todos os workflows criados no GitHub Actions para a manutenção do Painel Gerencial do CIGA-MPMG.
7.1 Ativando um workflow manualmente
Um workflow pode ser ativado manualmente em 2 passos:
- Selecione o workflow desejado na lista de workflow disponíveis no repositório. A imagem abaixo exibe a lista de workflow do repositório
painelMain.
- Acione o actions apertando o botão “Run workflow”. A imagem abaixo exibe o botão “Run Workflow” no workflow de implantação do código fonte do Painel de Recomendações no servidor de homologação.

7.2 Credenciais
Cada workflow pode necessitar de diferentes credenciais (repository secrets). Abaixo estão listadas as credenciais necessárias para os workflows, segundo o serviço que ele utiliza.
Banco de dados (GCP)
- CIGA_SQL_HOST
- CIGA_SQL_DATABASE
- CIGA_SQL_USER
- CIGA_SQL_PORT
- CIGA_SQL_PASSWORD
Outlook (Conta Microsoft)
- CIGA_OUTLOOK_TENANT
- CIGA_OUTLOOK_PASSWORD
- CIGA_OUTLOOK_APP
Firebase (GCP)
- CIGA_FIREBASE_PASSWORD
- CIGA_FIREBASE_PROJECT_API
SSH (acesso ao servidor) (GCP)
- SSH_PRIVATE_KEY
- SSH_HOST
- SSH_USER
- SSH_PRIVATE_KEY_PROD
- SSH_HOST_PROD
Google Cloud Storage (Bucket)
- CIGA_JSON_GOOGLE
GitHub
- TOKEN
7.3 Workflows
A seguir, descrevemos cada um dos workflows criados para a manutenção do Painel Gerencial do CIGA-MPMG.
7.3.1 Gerar os relatórios gerenciais
- Descrição: Gera os relatórios gerenciais e faz o upload para o Google Cloud Storage.
- Link para o workflow: gerar-relatorios-gerenciais.yml
- Execução:
- Ativação manual
- Ativação automática: Dia 1 de cada mês, uma vez ao dia, às 00h00.
- Automaticamente quando há novas modificações no repositório ciga-mpmg/resuvafeca
- Repositório:
- Repositório com o código para gerar o relatório: ciga-mpmg/relatorioGerencial
- Repositório onde o workflow é executado: ciga-mpmg/painelMain
- Saídas da execução:
- Arquivos: relatórios em PDF, enviado ao Google Cloud Storage, nas pastas
bucket-aecom-ciga-homolog/relatorios_gerenciais_padronizados/TIPO_RELATORIO/YYYY-MMcorrespondente ao tipo de relatório e ao mês/ano. - Tabelas no banco de dados: nenhuma tabela é alterada.
- Ações: nenhuma ação é realizada
- Arquivos: relatórios em PDF, enviado ao Google Cloud Storage, nas pastas
- Credenciais necessárias:
- SSH_PRIVATE_KEY
- SSH_HOST
- SSH_USER
7.3.2 Resuvafeca
- Descrição: Sempre que houver novas alterações na branch main do repositório resuvafeca, ativa os seguintes workflows:
- update-sigbm.yaml - atualizar sigbm
- ciga-mpmg/relatorioGerencial - gerar relatório gerencial.
- Link para o workflow: workflow-dispatch-sigbm.yaml
- Execução: ativação automática: sempre que houver uma mudança na main do repositório.
- Repositório: ciga-mpmg/resuvafeca
- Saídas da execução:
- Arquivos: Nenhum arquivo é gerado.
- Tabelas no banco de dados: nenhuma tabela é alterada.
- Ações: Ativa outro workflows.
- Credenciais necessárias:
- TOKEN
7.3.3 Atualizar o painel - Produção
- Descrição: Workflow para atualizar o painel em produção. Atualiza todos os painéis. Atualiza o servidor com o código que está na branch
prodde cada repositório dos painéis. - Link para o workflow: deploy-prod-all.yml
- Execução:
- Ativação automática: todos os dias, uma vez ao dia, às 00h00.
- Repositório: ciga-mpmg/painelMain
- Resultados:
- Arquivos: nenhum arquivo é gerado.
- Tabelas no banco de dados: nenhuma tabela é alterada.
- Ações: atualizações dos painéis em ambiente de produção.
- Credenciais necessárias:
- SSH_PRIVATE_KEY_PROD
- SSH_HOST_PROD
- SSH_USER
7.3.4 Atualizar o painel - Homologação
- Descrição: Workflow para o painel em homologação. Atualiza todos os painéis. Atualiza o servidor com o código que está na branch
mainde cada repositório dos painéis. - Link para o workflow: deploy-homolog-all.yml
- Execução:
- Ativação automática: todos os dias, uma vez ao dia, às 01h00.
- Repositório: ciga-mpmg/painelMain
- Resultados:
- Arquivos: nenhum arquivo é gerado.
- Tabelas no banco de dados: nenhuma tabela é alterada.
- Ações: atualizações dos painéis em homologação.
- Credenciais necessárias:
- SSH_PRIVATE_KEY
- SSH_HOST
- SSH_USER
7.3.5 Download SIGBM
Esse workflow realiza diversas tarefas de ETL importantes para o painel, descritas no README do repositório.
- Descrição: Faz download dos dados do portal SIGBM. Além disso, faz um join da base do SIGBM com a base de recomendações, e outros tratamentos necessários para preparar tabelas para os painéis.
- Link para o workflow: update-sigbm.yaml
- Execução:
- Ativação automática: todos os dias, duas vezes ao dia, às 11h30 e 23h30.
- Repositório: ciga-mpmg/scraper_sigbm
- Resultados:
- Credenciais necessárias:
- CIGA_SQL_HOST
- CIGA_SQL_DATABASE
- CIGA_SQL_USER
- CIGA_SQL_PORT
- CIGA_SQL_PASSWORD
Executar sempre que uma nova atualização da base de recomendações acontecer! Essa execução acontece automaticamente quando há novas modificações no repositório ciga-mpmg/resuvafeca.
A verificação de SSL foi desativada por um problema no site da ANM.
7.3.6 Copiar metadados do Google Cloud Storage
- Descrição: importa informações de arquivos que estão no Google Cloud Storage, como documentos dos TACs, relatórios gerenciais, imagens de satélite e as máscaras das imagens de satélite.
- Link para o workflow: copia-metadados-bucket.yaml
- Execução:
- Ativação automática: todos os dias, duas vezes ao dia, às 07h00 e 19h00.
- Repositório: ciga-mpmg/googleStorageMetadata
- Resultados:
- Arquivos: Nenhum arquivo é gerado.
- Tabelas no banco de dados:
- Credenciais necessárias:
- CIGA_SQL_HOST
- CIGA_SQL_DATABASE
- CIGA_SQL_USER
- CIGA_SQL_PORT
- CIGA_SQL_PASSWORD
- CIGA_JSON_GOOGLE
Para manter os painéis atualizados, esse workflow deve ser executado manualmente sempre que alguma mudança for realizada nos arquivos do Google Cloud Storage listados acima. Caso adicione imagens de satélite novas, verifique se a mesma consta na tabela de-para de imagens de satélite e barragens: local e regional.
7.3.7 Download IDE SISEMA
- Descrição: Faz download dos dados do IDE Sisema acessando o seu Web Map Server (WMS).
- Link para o workflow: update-data.yaml
- Execução:
- Ativação automática: todos os dias, uma vez ao dia, às 07h00.
- Repositório: ciga-mpmg/download_IDE_SISEMA
- Resultados:
- Arquivos:
- Tabelas no banco de dados:
- Credenciais necessárias:
- CIGA_SQL_HOST
- CIGA_SQL_DATABASE
- CIGA_SQL_USER
- CIGA_SQL_PORT
- CIGA_SQL_PASSWORD
7.3.8 Download Comarcas TJMG
- Descrição: Faz download do pdf dos municípios e comarcas do Tribunal de Justiça do estado de Minas Gerais
- Link para o workflow: download-comarcas-TJMG
- Execução:
- Ativação automática: todos os dias, uma vez ao dia, às 07h00.
- Repositório: ciga-mpmg/download_comarcas_TJMG
- Resultados:
- Arquivos:
- Tabelas no banco de dados:
- Credenciais necessárias:
- CIGA_SQL_HOST
- CIGA_SQL_DATABASE
- CIGA_SQL_USER
- CIGA_SQL_PORT
- CIGA_SQL_PASSWORD
Este workflow utiliza o código disponível em https://github.com/tech-legado/comarcasTJMG.
7.3.9 Download SIGBM detalhado - Mapa de inundação - Download
- Descrição: Faz o download dos mapas de inundação disponibilizados no portal SIGBM.
- Link: 01-download-sigbm-mapa-inundacao-dados.yaml
- Execução:
- Ativação automática: todos os dias, uma vez ao dia, às 20h00.
- Repositório: https://github.com/ciga-mpmg/sigbm-mapa-inundacao
- Resultados:
- Arquivos:
- Tabelas no banco de dados: Nenhuma tabela é alterada.
- Credenciais necessárias:
- CIGA_JSON_GOOGLE
7.3.10 Download SIGBM detalhado - Mapa de inundação - Upload
- Descrição: Faz o upload dos mapas de inundação disponibilizados no portal SIGBM para o Bucket.
- Link: 02-upload-sigbm-mapa-inundacao-bucket.yaml
- Execução:
- Ativação automática: todos os dias, uma vez ao dia, às 20h30.
- Repositório: https://github.com/ciga-mpmg/sigbm-mapa-inundacao
- Resultados:
- Arquivos:
- Tabelas no banco de dados: Nenhuma tabela é alterada.
- Credenciais necessárias:
- CIGA_JSON_GOOGLE