Pular para o conteúdo

Encadeando steps

steps:
- id: analyze
task: techlite/analyze-commits@^1.0.0
implementation: techlite/analyze-commits-alpine
dependencies:
source: "."
- id: versao
task: techlite/version-bump@^1.0.0
implementation: techlite/version-bump-alpine
inputs:
change: ${outputs['analyze'].change}
dependencies:
source: "."

O valor é tipado e validado: se change não satisfizer o contrato de version-bump, o step falha antes de qualquer container subir.

Um contrato pode declarar que escreve num diretório:

dependencies:
source:
type: directory
mutable: true # o que o worker escrever volta para o host

Sem mutable, o que o worker escreve é descartado com o container. Com mutable, a alteração é exportada de volta e os steps seguintes que montarem o mesmo caminho veem o resultado.

É o que permite version-bump alterar o package.json e commit-and-tag commitar o que ele mudou.

Cada execução grava em .oren/runs/<id>/:

manifest.json # o pipeline resolvido
steps/analyze/output.json
steps/analyze/status.json

O Oren relê os outputs desse diretório em vez de mantê-los em memória. É o que faz a execução local se comportar igual à execução no CI, onde cada step é um job separado e nada sobrevive entre eles.

Valores marcados como secretos são gravados redigidos.