Skip to content

Commit cb31ff5

Browse files
author
Tim Roes
authored
🪟 🔧 Run FE e2e tests on separate runner (#21428)
* Run FE e2e tests on separate runner * Renamed step name
1 parent 1757a6e commit cb31ff5

File tree

1 file changed

+79
-11
lines changed

1 file changed

+79
-11
lines changed

.github/workflows/gradle.yml

Lines changed: 79 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -442,11 +442,79 @@ jobs:
442442
autoAcceptChanges: true
443443
exitOnceUploaded: true
444444

445-
frontend-test:
445+
# In case of self-hosted EC2 errors, remove this block.
446+
stop-frontend-runner:
447+
name: "Frontend: Stop Runner"
448+
timeout-minutes: 10
449+
needs:
450+
- start-frontend-runner # required to get output from the start-runner job
451+
- frontend-build # required to wait when then build job is done
452+
runs-on: ubuntu-latest
453+
# Always is required to stop the runner even if the previous job has errors. However always() runs even if the previous step is skipped.
454+
# Thus, we check for skipped here.
455+
if: ${{ always() && needs.start-frontend-runner.result != 'skipped'}}
456+
steps:
457+
- name: Configure AWS credentials
458+
uses: aws-actions/configure-aws-credentials@v1
459+
with:
460+
aws-access-key-id: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
461+
aws-secret-access-key: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
462+
aws-region: us-east-2
463+
- name: Checkout Airbyte
464+
uses: actions/checkout@v3
465+
- name: Check PAT rate limits
466+
run: |
467+
./tools/bin/find_non_rate_limited_PAT \
468+
${{ secrets.AIRBYTEIO_PAT }} \
469+
${{ secrets.OSS_BUILD_RUNNER_GITHUB_PAT }} \
470+
${{ secrets.SUPERTOPHER_PAT }} \
471+
${{ secrets.DAVINCHIA_PAT }}
472+
- name: Stop EC2 runner
473+
uses: supertopher/[email protected]
474+
with:
475+
mode: stop
476+
github-token: ${{ env.PAT }}
477+
label: ${{ needs.start-frontend-runner.outputs.label }}
478+
ec2-instance-id: ${{ needs.start-frontend-runner.outputs.ec2-instance-id }}
479+
480+
## Frontend Test
481+
# In case of self-hosted EC2 errors, remove this block.
482+
start-frontend-e2e-runner:
483+
name: "Frontend E2E Tests: Start EC2 Runner"
484+
needs:
485+
- changes
486+
# Because scheduled builds on master require us to skip the changes job. Use always() to force this to run on master.
487+
if: |
488+
needs.changes.outputs.frontend == 'true' || needs.changes.outputs.build == 'true' || github.ref == 'refs/heads/master'
489+
|| (always() && needs.changes.outputs.backend == 'true')
490+
timeout-minutes: 10
491+
runs-on: ubuntu-latest
492+
outputs:
493+
label: ${{ steps.start-ec2-runner.outputs.label }}
494+
ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
495+
steps:
496+
- name: Checkout Airbyte
497+
uses: actions/checkout@v3
498+
- name: Check PAT rate limits
499+
run: |
500+
./tools/bin/find_non_rate_limited_PAT \
501+
${{ secrets.AIRBYTEIO_PAT }} \
502+
${{ secrets.OSS_BUILD_RUNNER_GITHUB_PAT }} \
503+
${{ secrets.SUPERTOPHER_PAT }} \
504+
${{ secrets.DAVINCHIA_PAT }}
505+
- name: Start AWS Runner
506+
id: start-ec2-runner
507+
uses: ./.github/actions/start-aws-runner
508+
with:
509+
aws-access-key-id: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
510+
aws-secret-access-key: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
511+
github-token: ${{ env.PAT }}
512+
513+
frontend-e2e-test:
446514
name: "Frontend: Run End-to-End Tests"
447515
needs:
448-
- start-frontend-runner # required to have runner started
449-
runs-on: ${{ needs.start-frontend-runner.outputs.label }} # run the job on the newly created runner
516+
- start-frontend-e2e-runner # required to have runner started
517+
runs-on: ${{ needs.start-frontend-e2e-runner.outputs.label }} # run the job on the newly created runner
450518
timeout-minutes: 120
451519
steps:
452520
- name: Checkout Airbyte
@@ -505,18 +573,18 @@ jobs:
505573
command: ./tools/bin/e2e_test.sh
506574
attempt_limit: 3
507575
attempt_delay: 5000 # in ms
576+
508577
# In case of self-hosted EC2 errors, remove this block.
509-
stop-frontend-runner:
510-
name: "Frontend: Stop Runner"
578+
stop-frontend-e2e-runner:
579+
name: "Frontend E2E Tests: Stop Runner"
511580
timeout-minutes: 10
512581
needs:
513-
- start-frontend-runner # required to get output from the start-runner job
514-
- frontend-test # required to wait when the e2e-test job is done
515-
- frontend-build # required to wait when then build job is done
582+
- start-frontend-e2e-runner # required to get output from the start-runner job
583+
- frontend-e2e-test # required to wait when the e2e-test job is done
516584
runs-on: ubuntu-latest
517585
# Always is required to stop the runner even if the previous job has errors. However always() runs even if the previous step is skipped.
518586
# Thus, we check for skipped here.
519-
if: ${{ always() && needs.start-frontend-runner.result != 'skipped'}}
587+
if: ${{ always() && needs.start-frontend-e2e-runner.result != 'skipped'}}
520588
steps:
521589
- name: Configure AWS credentials
522590
uses: aws-actions/configure-aws-credentials@v1
@@ -538,8 +606,8 @@ jobs:
538606
with:
539607
mode: stop
540608
github-token: ${{ env.PAT }}
541-
label: ${{ needs.start-frontend-runner.outputs.label }}
542-
ec2-instance-id: ${{ needs.start-frontend-runner.outputs.ec2-instance-id }}
609+
label: ${{ needs.start-frontend-e2e-runner.outputs.label }}
610+
ec2-instance-id: ${{ needs.start-frontend-e2e-runner.outputs.ec2-instance-id }}
543611

544612
## FOLLOWING BUILDS ARE ALL PLATFORM BUILDS.
545613

0 commit comments

Comments
 (0)