Attempting to set up custom EC2 instances for E2E tests
This commit is contained in:
parent
36ce4f8f29
commit
cf67b95e5b
56
.github/workflows/end_to_end_tests.yml
vendored
56
.github/workflows/end_to_end_tests.yml
vendored
@ -11,10 +11,42 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
|
start-runner:
|
||||||
|
name: Start self-hosted EC2 runner
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
label: ${{ steps.start-ec2-runner.outputs.label }}
|
||||||
|
ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
|
||||||
|
steps:
|
||||||
|
- name: Configure AWS credentials
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: ${{ secrets.AWS_REGION }}
|
||||||
|
- name: Start EC2 runner
|
||||||
|
id: start-ec2-runner
|
||||||
|
uses: machulav/ec2-github-runner@v2
|
||||||
|
with:
|
||||||
|
mode: start
|
||||||
|
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
|
||||||
|
ec2-image-id: ami-0070a0f2d7073ed91
|
||||||
|
ec2-instance-type: t3.xlarge
|
||||||
|
subnet-id: subnet-0ac40025f559df1bc
|
||||||
|
security-group-id: sg-0e36e96e3b8ed2d64
|
||||||
|
#iam-role-name: my-role-name # optional, requires additional permissions
|
||||||
|
#aws-resource-tags: > # optional, requires additional permissions
|
||||||
|
# [
|
||||||
|
# {"Key": "Name", "Value": "ec2-github-runner"},
|
||||||
|
# {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}
|
||||||
|
# ]
|
||||||
|
|
||||||
|
|
||||||
end-to-end-tests:
|
end-to-end-tests:
|
||||||
name: "End-to-end testcafe tests"
|
name: "End-to-end testcafe tests"
|
||||||
|
|
||||||
runs-on: "ubuntu-latest"
|
needs: start-runner # required to start the main job when the runner is ready
|
||||||
|
runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout"
|
- name: "Checkout"
|
||||||
@ -67,3 +99,25 @@ jobs:
|
|||||||
- name: Display logs
|
- name: Display logs
|
||||||
if: ${{ failure() }}
|
if: ${{ failure() }}
|
||||||
run: docker-compose logs
|
run: docker-compose logs
|
||||||
|
|
||||||
|
stop-runner:
|
||||||
|
name: Stop self-hosted EC2 runner
|
||||||
|
needs:
|
||||||
|
- start-runner # required to get output from the start-runner job
|
||||||
|
- end-to-end-tests # required to wait when the main job is done
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs
|
||||||
|
steps:
|
||||||
|
- name: Configure AWS credentials
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: ${{ secrets.AWS_REGION }}
|
||||||
|
- name: Stop EC2 runner
|
||||||
|
uses: machulav/ec2-github-runner@v2
|
||||||
|
with:
|
||||||
|
mode: stop
|
||||||
|
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
|
||||||
|
label: ${{ needs.start-runner.outputs.label }}
|
||||||
|
ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }}
|
||||||
|
Loading…
Reference in New Issue
Block a user