Integration Tests #340
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
name: Integration Tests | |
on: | |
schedule: | |
# Runs around midnight Pacific Time (UTC-7) | |
# Doesn't account for daylight saving transitions | |
- cron: "0 7 * * *" | |
workflow_dispatch: | |
inputs: | |
MCP_VENUE_DEV_AIRFLOW_ENDPOINT: | |
description: "Base URL for the Airflow endpoint in MCP Venue Dev (i.e. http://abc.def.ghi:port-number)" | |
type: string | |
MCP_VENUE_DEV_OGC_PROCESSES_ENDPOINT: | |
description: "Base URL for the OGC API endpoint in MCP Venue Dev (i.e. http://abc.def.ghi:port-number)" | |
type: string | |
MCP_VENUE_TEST_AIRFLOW_ENDPOINT: | |
description: "Base URL for the Airflow endpoint in MCP Venue Test (i.e. http://abc.def.ghi:port-number)" | |
type: string | |
MCP_VENUE_TEST_OGC_PROCESSES_ENDPOINT: | |
description: "Base URL for the OGC endpoint in MCP Venue Test (i.e. http://abc.def.ghi:port-number)" | |
type: string | |
# TODO: add MCP_VENUE_OPS inputs | |
jobs: | |
integration-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -e ".[test]" | |
pip install git+https://github.com/unity-sds/unity-monorepo.git@main#subdirectory=libs/unity-py | |
pip freeze | |
- name: MCP Venue Dev - Integration tests | |
id: mcp_venue_dev_integration_tests | |
continue-on-error: true | |
env: | |
AIRFLOW_WEBSERVER_PASSWORD: ${{ secrets.MCP_VENUE_DEV_AIRFLOW_WEBSERVER_PASSWORD }} | |
UNITY_USER: ${{ secrets.UNITY_USER }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
run: | | |
pytest -vv -s --gherkin-terminal-reporter \ | |
unity-test/system/integration \ | |
--venue="dev" \ | |
--airflow-endpoint=${{ github.event.inputs.MCP_VENUE_DEV_AIRFLOW_ENDPOINT || vars.MCP_VENUE_DEV_AIRFLOW_ENDPOINT }} \ | |
--ogc-processes-endpoint=${{ github.event.inputs.MCP_VENUE_DEV_OGC_PROCESSES_ENDPOINT || vars.MCP_VENUE_DEV_OGC_PROCESSES_ENDPOINT }} | |
- name: MCP Venue Test - Integration tests | |
id: mcp_venue_test_integration_tests | |
continue-on-error: true | |
env: | |
AIRFLOW_WEBSERVER_PASSWORD: ${{ secrets.MCP_VENUE_TEST_AIRFLOW_WEBSERVER_PASSWORD }} | |
UNITY_USER: ${{ secrets.UNITY_USER }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
run: | | |
pytest -vv -s --gherkin-terminal-reporter \ | |
unity-test/system/integration \ | |
--venue="test" \ | |
--airflow-endpoint=${{ github.event.inputs.MCP_VENUE_TEST_AIRFLOW_ENDPOINT || vars.MCP_VENUE_TEST_AIRFLOW_ENDPOINT }} \ | |
--ogc-processes-endpoint=${{ github.event.inputs.MCP_VENUE_TEST_OGC_PROCESSES_ENDPOINT || vars.MCP_VENUE_TEST_OGC_PROCESSES_ENDPOINT }} | |
- name: Check Integration Tests Results | |
if: always() | |
run: | | |
dev_status=${{ steps.mcp_venue_dev_integration_tests.outcome }} | |
test_status=${{ steps.mcp_venue_test_integration_tests.outcome }} | |
echo "Dev Venue Integration Tests status: $dev_status" | |
echo "Test Venue Integration Tests status: $test_status" | |
if [ "$dev_status" != "success" ]; then | |
echo "MCP Venue Dev Integration Tests failed." | |
fi | |
if [ "$test_status" != "success" ]; then | |
echo "MCP Venue Test Integration Tests failed." | |
fi | |
if [ "$dev_status" != "success" ] || [ "$test_status" != "success" ]; then | |
exit 1 | |
fi |