Chegamos na última etapa do processo de criação do nosso Dashboard automatizado de dados de demonstrativos financeiros. Na primeira postagem aprendemos a como importar os dados fornecidos pela CVM e como criar indicadores contábeis a partir dos dados. Na segunda postagem, colocamos o processo de coleta e criação de indicadores em um Dashboard. Por fim, na postagem de hoje, finalizaremos colocando o Dashboard em uma página Web, com atualizações programadas da coleta de dados por meio do Shiny Apps e do Github Actions.
É possível acompanhar a série através das postagens:
- Automatizando a coleta de dados de demonstrativos financeiros: como começar?
- Automatizando a coleta de dados de demonstrativos financeiros: construindo um Dashboard (Parte 02)
O Github Actions é uma plataforma de integração continua e entrega continua (CI/CD) que permite automatizar o pipeline de um projeto. O Worflow do Actions é um processo automatizado configurável que executa um ou mais trabalhos. Os fluxos de trabalho são definidos por um arquivo YAML no repositório e que será executado quando acionado por um evento no repositório, manualmente ou de acordo com um cronograma definido.
O Shiny Apps permite realizar o deploy de aplicações Shiny. Basicamente é um servidor que permite manter o Dashboard criado por R ou Python online em uma página própria.
A combinação do Actions com o Shiny permite criarmos um Workflow que possibilita a atualização do arquivo get_data.R com um cronograma definido, e que a partir da obtenção de novos dados, seja realizado o deploy automaticamente dentro do Shiny App.
O processo necessitará de algumas condições antes de colocarmos o Dashboard em um ambiente online. Deve-se:
- possuir uma conta no Github;
- possuir o Git instalado e com o usuário configurado na máquina (para mais detalhes veja o seguinte post: Conectando Git, Github e RStudio em 3 passos);
- possuir uma conta no Shiny Apps;
- ter o projeto do Dashboard criado com o Rstudio.
Com as condições acima satisfeitas, devemos seguir os seguintes passos:
1 - Criando um arquivo Renv.lock do projeto
O Github Actions funciona como se fosse uma máquina virtual, portanto, é necessário criar dentro do Workflow um ambiente para o R, e portanto, uma forma de que o sistema instale os pacotes no qual o projeto é dependente (aqueles que são carregados nos arquivos .R e .Rmd). Para isso, podemos utilizar o pacote {renv}, que permite controlarmos as informações dos pacotes dos quais são utilizados no Dashboard.
Com o projeto aberto, deve-se:
- usar o comando renv::init() para inicializar o ambiente do projeto local.
- use o comando renv::snapshot() para salvar o estado projeto local em um lockfile (chamado renv.lock). É neste arquivo que estará contido as informações dos pacotes utilizados no projeto.
2 - Enviando os arquivos para um repositório no Github
Deve-se realizar a transferência dos arquivos hospedados localmente para um repositório no Github através do Rstudio.
Vamos criar um repositório no Github, chamado de dashboard_financeiro, como abaixo.
Após a criação, utilizaremos o primeiro bloco de comandos do Git dentro do Terminal Git Bash do Rstudio
E por fim, realizamos o Commit inserindo o código Git abaixo no Terminal ou utilizamos as abas do Git dentro do Rstudio para criar o Commit.
Pronto! Temos o repositório com os arquivos do Dashboard.
3 - Configurando o repositório com o Shiny App
Antes de produzir o Dashboard dentro do ambiente Shiny App com o Actions, é necessário permitir que o Github tenha as credenciais para produzir o sistema no site do Shiny. Para realizar essa configuração, selecionamos dentro do repositório do Github, a aba Settings -> Secrets -> Actions -> New repository Secret. No bloco que será aberto, é necessário colocar o nome (Name*) que referenciará o Secret no Workflow do Github Actions e em Secret* colocaremos os Tokens do Shiny App.
Criaremos três Secret, um para o usuário, um para o token e outro para o secret do Shiny App. Os seus nomes serão:
- RSCONNECT_USER
- RSCONNECT_TOKEN
- RSCONNECT_SECRET
Cada nome estará referenciado no Workflow do Github Actions.
E os Secrets de cada nome? Obtemos através da conta criada no site do Shiny App, acessando na Aba lateral superior a opção Tokens, "+ Add Token", e em "Show".
Portanto, o resultado de cada inserção ficará igual a imagem abaixo, que possui como exemplo a inserção do Token.
4 - Criando o arquivo do Github Actions
Agora podemos criar o Workflow do Github Actions para rodar o código em um ambiente a cada período de tempo. Para tanto, acessamos a aba do repositório Github Actions e criamos um novo arquivo em Set up a workflow yourself.
Agora será criado um novo arquivo chamado main.yml. Aqui, podemos alterar o nome para qualquer um que se deseja, no caso, alterei para update.yml.
E o que inserir dentro do arquivo? Será um código que indicará o sistema os passos para a o período de execução do código, a construção do ambiente do R, a instalação do pacote do projeto, a execução dos arquivos get_data.R e index.Rmd e o deploy no Shiny Apps. O código segue abaixo:
Obs: É necessário seguir corretamente a identação
Uma vez construído o Workflow, é possível realizar o Commit e esperar o Actions fazer o seu trabalho. O processo pode ser demorado, normalmente de 20 a 40 minutos. Ao final, será gerado o link do site do Dashboard no site do Shiny Apps.
Quer saber mais?
Veja nossos cursos da trilha de Ciência de dados para Economia e Finanças onde ensinamos a coletar dados financeiros e econômicos e também a construir Dashboard com o R.