generated from tweag/project
-
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.
- Loading branch information
tauqirsarwar1
committed
Mar 18, 2024
1 parent
e695aff
commit 32ff499
Showing
7 changed files
with
321 additions
and
1 deletion.
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,224 @@ | ||
name: Docker Web UI Tests | ||
|
||
env: | ||
TAGS: web_tests | ||
BASE_URL: https://opensource-demo.orangehrmlive.com | ||
HRM_USER_NAME: ${{ secrets.HRM_USER_NAME }} | ||
HRM_PASSWORD: ${{ secrets.HRM_PASSWORD }} | ||
USING_DOCKER: True | ||
|
||
on: | ||
schedule: | ||
- cron: '30 22 * * *' | ||
workflow_dispatch: | ||
inputs: | ||
tags: | ||
description: Gherkin Tags | ||
required: true | ||
default: web_tests | ||
|
||
baseurl: | ||
description: Base URL | ||
required: true | ||
type: choice | ||
default: https://opensource-demo.orangehrmlive.com | ||
options: | ||
- https://opensource-demo.orangehrmlive.com | ||
- other | ||
|
||
inputurl: | ||
description: Other than default Base URL (e.g portal url) | ||
required: true | ||
default: https://opensource-demo.orangehrmlive.com | ||
|
||
browser: | ||
description: Browser Name | ||
required: true | ||
type: choice | ||
default: chrome | ||
options: | ||
- chrome | ||
- firefox | ||
- edge | ||
|
||
jobs: | ||
web-scheduled-regression: | ||
if: github.event_name == 'schedule' | ||
strategy: | ||
max-parallel: 1 | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- name: Linux Chrome | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./configs/docker_chrome.json | ||
html_report: linux-chrome | ||
concurrent_thread: 1 | ||
|
||
- name: Linux Firefox | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./configs/docker_firefox.json | ||
html_report: linux-firefox | ||
concurrent_thread: 1 | ||
|
||
- name: Linux Edge | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./configs/docker_edge.json | ||
html_report: linux-edge | ||
concurrent_thread: 1 | ||
|
||
name: ${{ matrix.name }} - Regression | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Setup Python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.9" | ||
|
||
- name: Set up Docker | ||
id: docker_env_setup | ||
if: steps.validate_input.outcome == 'success' | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Build and start Docker Compose services | ||
id: docker_compose | ||
if: steps.docker_env_setup.outcome == 'success' | ||
run: | | ||
docker-compose -f docker-compose.yml up -d | ||
- name: Wait for services to start | ||
run: sleep 30 | ||
|
||
- name: Check out code | ||
id: co_code | ||
if: steps.docker_compose.outcome == 'success' | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup dependencies | ||
run: | | ||
sh install.sh | ||
- name: Run All Tests | ||
run: | | ||
env | ||
source $HOME/.bp-venv/bin/activate | ||
python -m pytest -v --driver Remote --selenium-host 'localhost' --selenium-port '4444' \ | ||
--variables ${{ matrix.config_file }} --tags="${{ matrix.tags }}" \ | ||
--base-url="${{ matrix.baseurl }}" \ | ||
--reruns 1 --reruns-delay 5 \ | ||
--html=report.html \ | ||
--self-contained-html \ | ||
- name: Upload HTML run report in the Artifacts Folder | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.html_report }} | ||
path: | | ||
./*.html | ||
./output/ | ||
./assets/ | ||
if: ${{ always() }} | ||
|
||
docker-web-manual-run: | ||
if: github.event_name != 'schedule' | ||
name: Manual - ${{ inputs.browser }} - ${{ inputs.tags }} - ${{ inputs.baseurl }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Validate Input Parameter | ||
id: validate_input | ||
run: | | ||
if [[ -z "${{ github.event.inputs.tags }}" ]]; then | ||
echo "Invalid input: 'tags' is required but not provided." | ||
exit 1 | ||
fi | ||
if [[ -z "${{ github.event.inputs.baseurl }}" ]]; then | ||
echo "Invalid input: 'baseurl' is required but not provided." | ||
exit 1 | ||
fi | ||
if [[ -z "${{ github.event.inputs.browser }}" ]]; then | ||
echo "Invalid input: 'browser' is required but not provided." | ||
exit 1 | ||
fi | ||
- name: Setup Python | ||
id: setup_python | ||
if: steps.validate_input.outcome == 'success' | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.9" | ||
|
||
- name: Set up Docker | ||
id: docker_env_setup | ||
if: steps.validate_input.outcome == 'success' | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Build and start Docker Compose services | ||
id: docker_compose | ||
if: steps.docker_env_setup.outcome == 'success' | ||
run: | | ||
docker-compose -f docker-compose.yml up -d | ||
- name: Wait for services to start | ||
run: sleep 30 | ||
|
||
- name: Check out code | ||
id: co_code | ||
if: steps.docker_compose.outcome == 'success' | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup dependencies | ||
id: setup_dependencies | ||
if: steps.docker_compose.outcome == 'success' | ||
run: | | ||
sh install.sh | ||
- name: Run Manual Job Tests | ||
id: run_manual_job | ||
if: steps.setup_dependencies.outcome == 'success' | ||
run: | | ||
TAGS="${{ github.event.inputs.tags }}" | ||
if [[ "${{ github.event.inputs.baseurl }}" == "other" ]]; then | ||
BASE_URL="${{ github.event.inputs.inputurl }}" | ||
else | ||
BASE_URL="${{ github.event.inputs.baseurl }}" | ||
fi | ||
number_of_threads=1 | ||
if [[ "${{ github.event.inputs.browser }}" == "chrome" ]]; then | ||
BROWSER=./configs/docker_chrome.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "firefox" ]]; then | ||
BROWSER=./configs/docker_firefox.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "edge" ]]; then | ||
BROWSER=./configs/docker_edge.json | ||
fi | ||
env | ||
source $HOME/.bp-venv/bin/activate | ||
python -m pytest -v --driver Remote \ | ||
--selenium-host 'localhost' --selenium-port '4444' \ | ||
--variables "$BROWSER" \ | ||
--reruns 1 --reruns-delay 5 \ | ||
--tags="$TAGS" --base-url="$BASE_URL" --html=report.html \ | ||
--self-contained-html | ||
- name: Upload HTML run report in the Artifacts Folder | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: pytest-html-results | ||
path: | | ||
./*.html | ||
./output/ | ||
./assets/ | ||
if: ${{ always() }} |
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,10 @@ | ||
{ | ||
"capabilities": { | ||
"browserName": "chrome", | ||
"timeouts": { | ||
"implicit": 30000, | ||
"pageLoad": 30000, | ||
"script": 30000 | ||
} | ||
} | ||
} |
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,10 @@ | ||
{ | ||
"capabilities": { | ||
"browserName": "MicrosoftEdge", | ||
"timeouts": { | ||
"implicit": 30000, | ||
"pageLoad": 30000, | ||
"script": 30000 | ||
} | ||
} | ||
} |
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,10 @@ | ||
{ | ||
"capabilities": { | ||
"browserName": "firefox", | ||
"timeouts": { | ||
"implicit": 30000, | ||
"pageLoad": 30000, | ||
"script": 30000 | ||
} | ||
} | ||
} |
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,42 @@ | ||
# To execute this docker-compose yml file use `docker-compose -f docker-compose.yml up` | ||
# Add the `-d` flag at the end for detached execution | ||
# To stop the execution, hit Ctrl+C, and then `docker-compose -f docker-compose.yml down` | ||
version: "3" | ||
services: | ||
chrome: | ||
image: selenium/node-chrome:4.18.0-20240220 | ||
shm_size: 2gb | ||
depends_on: | ||
- selenium-hub | ||
environment: | ||
- SE_EVENT_BUS_HOST=selenium-hub | ||
- SE_EVENT_BUS_PUBLISH_PORT=4442 | ||
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443 | ||
|
||
edge: | ||
image: selenium/node-edge:4.18.0-20240220 | ||
shm_size: 2gb | ||
depends_on: | ||
- selenium-hub | ||
environment: | ||
- SE_EVENT_BUS_HOST=selenium-hub | ||
- SE_EVENT_BUS_PUBLISH_PORT=4442 | ||
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443 | ||
|
||
firefox: | ||
image: selenium/node-firefox:4.18.0-20240220 | ||
shm_size: 2gb | ||
depends_on: | ||
- selenium-hub | ||
environment: | ||
- SE_EVENT_BUS_HOST=selenium-hub | ||
- SE_EVENT_BUS_PUBLISH_PORT=4442 | ||
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443 | ||
|
||
selenium-hub: | ||
image: selenium/hub:4.18.0-20240220 | ||
container_name: selenium-hub | ||
ports: | ||
- "4442:4442" | ||
- "4443:4443" | ||
- "4444:4444" |
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,4 @@ | ||
#!/bin/sh | ||
|
||
# Run API tests | ||
python -m pytest -v -s --gherkin-terminal-reporter --driver=Chrome --html="./output/reports/" --self-contained-html --capability headless True --reruns 1 --reruns-delay 2 --tags="web_tests" -n 2 |