Conversation
lgfa29
left a comment
There was a problem hiding this comment.
Tá ficando legal @EzzioMoreira!
Deixei uns comentários para ajustes, qualquer dúvida é só perguntar 🙂
| with: | ||
| ref: '${{ github.event.pull_request.base.ref }}' |
There was a problem hiding this comment.
Seria bom evitar eventos específicos na pipeline centralizada, assim dá para usar o workflow em eventos que não são PR.
Se eu entendi certo, a ideia aqui é gerar um diff entre o commit na base do PR vs. no PR? Uma opção seria usar o valor github.event.repository.default_branch. Não é exatamente o mesmo, por exemplo se tiver um PR que aponta para uma branch que não é a default, mas talvez seja aceitável? Geralmente você quer saber a diferença para a main 😅
Uma outra opção seria deixar esse workflow só para PRs, aí nesse caso seria bom colocar um if para ver qual o tipo de evento no começo da pipelines.
There was a problem hiding this comment.
@lgfa29 ficaria mais ou menos assim?
jobs:
infracost:
name: Infracost workflow
runs-on: ${{ inputs.os_version }}
if: github.event.pull_request.opened
ou seria assim:
if: github.event.pull_request.state.openThere was a problem hiding this comment.
Seria bom testar, mas eu acho que só precisa disso:
jobs:
infracost:
if: github.event.pull_requestThere was a problem hiding this comment.
Tranquilo vou fazer o teste e adiciono o link do resultado aqui.
There was a problem hiding this comment.
@lgfa29 parece que funcionou.
Primeiro teste eu fiz a chamada da actions passando on: push actions não rodou na abertura de PR.
Link do teste: EzzioMoreira/rds-terraform#5
name: "Estimativa de custo Infracost"
on:
push:
jobs:
infracost:
uses: "EzzioMoreira/cicd_centralizado/.github/workflows/infracost.yaml@feat/add-infracost"
secrets:
infracost_api_key: ${{ secrets.INFRACOST_API_KEY }}Segundo teste eu fiz a chamada da actions passando on: pull_request actions rodou na abertura de PR.
name: "Estimativa de custo Infracost"
on:
pull_request:
jobs:
infracost:
uses: "EzzioMoreira/cicd_centralizado/.github/workflows/infracost.yaml@feat/add-infracost"
secrets:
infracost_api_key: ${{ secrets.INFRACOST_API_KEY }}Era esse o comportamento esperado?
There was a problem hiding this comment.
Pelo que conversamos na nossa ultima reunião. A ideia é que o infracost rode a partir da main mesmo. Pegando o diff do commit atual e o ultimo anterior.
| run: | | ||
| infracost comment github --path=/tmp/infracost.json \ | ||
| --repo=$GITHUB_REPOSITORY \ | ||
| --github-token=${{github.token}} \ |
There was a problem hiding this comment.
Seria bom testar, mas acho que esse token não vai ter permissão de comentar se o workflow for chamado de um PR que é um fork de uma pessoa que não é maintainer do repo.
There was a problem hiding this comment.
@lgfa29 eu fiz a validação aqui rds e funcionou como esperado. O github-token tem permissão de leitura/escrita no repositório corrente.
There was a problem hiding this comment.
A permissão do token varia dependendo da pessoa que ativou a ação. Como você tem permissão de escrita no repo, os seus PRs vão funcionar, na tabela de permissão tem que ver a última coluna, que é para repositórios criados a partir de um fork:
Eu criei um PR de teste no seu repo, vamos ver se funciona 😄
There was a problem hiding this comment.
Falamos na ultima reunião de colocar isso em outro lugar, mas seria a partir da main, né? Dai não precisaria desse token, né?
Co-authored-by: Luiz Aoqui <luiz@hashicorp.com>
Co-authored-by: Luiz Aoqui <luiz@hashicorp.com>
Co-authored-by: Luiz Aoqui <luiz@hashicorp.com>
Co-authored-by: Luiz Aoqui <luiz@hashicorp.com>
| with: | ||
| ref: '${{ github.event.pull_request.base.ref }}' |
There was a problem hiding this comment.
Pelo que conversamos na nossa ultima reunião. A ideia é que o infracost rode a partir da main mesmo. Pegando o diff do commit atual e o ultimo anterior.
| run: | | ||
| infracost comment github --path=/tmp/infracost.json \ | ||
| --repo=$GITHUB_REPOSITORY \ | ||
| --github-token=${{github.token}} \ |
There was a problem hiding this comment.
Falamos na ultima reunião de colocar isso em outro lugar, mas seria a partir da main, né? Dai não precisaria desse token, né?

Titulo
Adiciona fluxo reutilizável para projetos terraform, exibe estimativa de custo dos recursos que serão criados ou alterados nos comentários do PR.
Issue
#29
Objetivo
Dar visibilidades nos custo dos recursos que serão provisionados.
Referências
https://www.infracost.io/
https://github.com/infracost/actions
Como testar
Utilizando
Criar a seguintes estrutura de diretórios:
.github/workflows/<proposito>.ymlUtilize o exemplo abaixo para seu pipeline de CI:
Repositórios utilizados na validação: https://github.com/EzzioMoreira/rds-terraform
Faça um fork desse projeto, crie uma nova branch e crie um PR.