Imagina que tengo un flujo de trabajo con 5 pasos.
El paso 2 puede crear o no un archivo como salida (que luego se usa como entrada para los pasos posteriores).
Estoy seguro de que debe haber una manera simple de hacer esto, pero no logro descubrir cómo.
Intenté hacer que el paso 2 devolviera un código de salida distinto de cero cuando no se crea ningún archivo y luego usar when: "{{steps.step2.outputs.exitCode}} == 0" en el paso 3, pero eso aún ejecuta los pasos 4 y 5 (sin mencionar que marca el paso 2 como "fallido")
Así que me quedé sin ideas, cualquier sugerencia es muy apreciada.
De forma predeterminada, un paso que finaliza con un código de salida distinto de cero genera un error en el flujo de trabajo.
Sugeriría escribir un parámetro de salida para determinar si el flujo de trabajo debe continuar.
- name: yourstep container: command: [sh, -c] args: ["yourcommand; if [ -f /tmp/yourfile ]; then echo continue > /tmp/continue; fi"] outputs: parameters: - name: continue valueFrom: default: "stop" path: /tmp/continue Alternativamente, puede anular el comportamiento de código de salida fallido en distinto de cero con continueOn .
continueOn: failed: true Yo advertiría contra continueOn.failed: true . Si su comando arroja un código de salida distinto de cero por una razón inesperada, el flujo de trabajo no fallará como debería y el error podría pasar desapercibido.