generated from CDCgov/template
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* create compose file for running playwright tests; one for each storage type * added script for waiting for the UI server to start up and added it as a script to the playwright package.json * created e2e-test-template job * added e2e test job for each storage type to tus-upload-server-ci * copied the test upload file into the playwright directory * removed the endpoint field from the form because setting it is unnecessary and possibly destructive Co-authored-by: David Gage <[email protected]>
- Loading branch information
1 parent
42b6e96
commit c0c859b
Showing
24 changed files
with
421 additions
and
137 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
name: Template - Run E2E Tests Using Docker-Compose File | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
TEST_TITLE: | ||
type: string | ||
required: true | ||
COMPOSE_FILENAME: | ||
type: string | ||
required: true | ||
STORAGE_TYPE: | ||
type: string | ||
required: true | ||
|
||
defaults: | ||
run: | ||
working-directory: upload-server/ | ||
|
||
jobs: | ||
e2e-tests: | ||
runs-on: ubuntu-latest | ||
continue-on-error: true | ||
env: | ||
CI: true | ||
AZURITE_STORAGE_KEY: ${{ (inputs.STORAGE_TYPE == 'azure') && secrets.AZURITE_STORAGE_KEY }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Install podman compose | ||
run: pip3 install podman-compose | ||
- name: Run E2E Tests | ||
id: test | ||
run: podman-compose -f ${{ inputs.COMPOSE_FILENAME }} up --build --exit-code-from playwright --abort-on-container-exit | ||
- name: Test Report | ||
# Piping the logs through perl so that we can append the TEST_TITLE to make where they are coming from clearer | ||
# The only annotation types produced by the `github` report are 'debug', 'notice', 'warning', and 'error' so this should cover them all | ||
run: podman-compose -f ${{ inputs.COMPOSE_FILENAME }} logs -f playwright | perl -pe 's/::(debug|notice|warning|error) title=/$&\[${{ inputs.TEST_TITLE }}\] /g' | ||
- name: Tear Down Containers | ||
run: podman-compose -f ${{ inputs.COMPOSE_FILENAME }} down | ||
outputs: | ||
actualResult: ${{ steps.test.conclusion }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
# Playwright test results | ||
test-results/ | ||
test-reports/ |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.