Open labanca opened 4 months ago
Você chegou a entender se houver commits locais depois que o repositório foi clonado se as mudanças vão ser do último commit local?
Você chegou a entender se houver commits locais depois que o repositório foi clonado se as mudanças vão ser do último commit local?
Atualizei o texto para conter o comportamento com commits intermediários, mas acho que ainda não era isso exatamente que você estava perguntando @fjuniorr.
Era exatamente isso!
Existe no marketplace uma action chamada changed_files que oferece recursos para rastrear facilmente todos os arquivos e diretórios alterados em relação a um branch.
No contexto dos projetos da splor-mg, esse action pode ser utilizado para que determinadas ações dentro de um fluxo somente sejam executadas caso determinadas alterações nos arquivos do repositório aconteçam:
O script acima captura todas as alterações feitas na pasta
data/
e pode utilizar essas informações de diversas maneiras. No exemplo em questão, mensagens de debug são printadas indicando se aconteceram mudanças, quais arquivos foram criados, modificados e deletados. Esses arquivos (ou variáveis) criados por esse action podem ser utilizadas em outros steps para controlar seu comportamento de execução.No exemplo abaixo, ao invés de uma pasta, a chave
files:
do stepGet changed files
verifica mudanças em um arquivo específico:datapackage.json
.Com isso é executar step subsequente condicionalmente em função das mudanças rastreadas:
O arquivo
steps.changes.outputs.any_changed
indica se ocorreram mudanças no arquivo datapackage.json e a condicional if determina se o script do stepExecutes If Datapackage.json changed
será executado ou não.Durante a execução do workflow, caso algum commit seja realizado para o repositório, é possível capturar esses novos arquivos com o action
changed_files
ainda durante a execução desse mesmo workflow.O workflow abaixo printa mensagens de debug com as alterações realizadas antes e depois de um push de um arquivo de texto para a pasta
data/
:Resultando no log:
O segundo uso do
changed_files
indica que o commit intermediário foi enxergado pelo action, já que na primeira vez que as mensagens de debug foram mostradas não havia qualquer alteração de arquivos no repositório. Notar que deve ser utilizada uma nova instância dochanged_files
com uma id diferente, nesse casechanges2
, pois a anterior, naturalmente mantém o estado do momento anterior ao commit do arquivo dummy.