Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix #3: add integration tests #5

Merged
merged 4 commits into from
Mar 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,65 @@ jobs:
run: npm ci
- name: Run Unit Tests
run: npm test

happy_integration_tests:
name: Run Integration Tests with commands that succeed
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm ci

- name: Happy path
id: happy_path
uses: ./
with:
max_attempts: 1
command: exit 0

- name: Run a command that fails only on the first execution
id: flake
uses: ./
with:
max_attempts: 2
substrings_indicating_flaky_execution: |
flake_error
command: |
echo flake_error \
&& echo -n 1 >> /tmp/retry_github_action_happy \
&& grep 11 /tmp/retry_github_action_happy

unhappy_integration_tests:
name: Run Integration Tests with commands that fail
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm ci

- name: Failing command
id: failing_command
uses: ./
continue-on-error: true
with:
max_attempts: 1
command: exit 1

- name: Write success if step failed
id: success_if_failed
if: steps.failing_command.outcome != 'success'
run: touch /tmp/retry_github_action_unhappy_success

- name: Exit
id: exit
run: ls /tmp/retry_github_action_unhappy_success