feat: retry only on specific exit code (#58)

* feat: retry only on specific exit code

* Run ci_cd on all push events

* dedupe step IDs

* add assertions for retry_on_exit_code tests

* minor: implemented suggested fix from @andersfischernielsen

* docs: update readme to reflect new retry_on_exit_code input

Co-authored-by: Anders Fischer-Nielsen <andersfischern@me.com>
This commit is contained in:
Nick Fields
2022-04-25 22:10:55 -04:00
committed by GitHub
parent 71062288b7
commit f227091f2e
5 changed files with 63 additions and 14 deletions

View File

@@ -1,8 +1,7 @@
name: CI/CD
on:
push:
branches:
- '**'
jobs:
# runs on branch pushes only
ci:
@@ -79,6 +78,42 @@ jobs:
command: node -e "process.exit(1)"
on_retry_command: node -e "console.log('this is a retry command')"
- name: retry_on_exit_code (with expected error code)
id: retry_on_exit_code_expected
uses: ./
continue-on-error: true
with:
timeout_minutes: 1
retry_on_exit_code: 2
max_attempts: 3
command: node -e "process.exit(2)"
- uses: nick-invision/assert-action@v1
with:
expected: failure
actual: ${{ steps.retry_on_exit_code_expected.outcome }}
- uses: nick-invision/assert-action@v1
with:
expected: 3
actual: ${{ steps.retry_on_exit_code_expected.outputs.total_attempts }}
- name: retry_on_exit_code (with unexpected error code)
id: retry_on_exit_code_unexpected
uses: ./
continue-on-error: true
with:
timeout_minutes: 1
retry_on_exit_code: 2
max_attempts: 3
command: node -e "process.exit(1)"
- uses: nick-invision/assert-action@v1
with:
expected: failure
actual: ${{ steps.retry_on_exit_code_unexpected.outcome }}
- uses: nick-invision/assert-action@v1
with:
expected: 1
actual: ${{ steps.retry_on_exit_code_unexpected.outputs.total_attempts }}
- name: on-retry-cmd (on-retry fails)
id: on-retry-cmd-fails
uses: ./