# Copyright 2021 Collate # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: py-cli-e2e-tests on: schedule: - cron: '0 0 * * *' workflow_dispatch: jobs: py-cli-e2e-tests: runs-on: ubuntu-latest strategy: matrix: py-version: ['3.9'] e2e-test: ['mysql', 'bigquery', 'snowflake'] environment: test steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: '11' distribution: 'adopt' - name: Set up Python ${{ matrix.py-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.py-version }} - name: Install Ubuntu dependencies run: | sudo apt-get install -y unixodbc-dev python3-venv librdkafka-dev gcc libsasl2-dev build-essential libssl-dev libffi-dev \ unixodbc-dev libevent-dev python3-dev - name: Generate models run: | python3 -m venv env source env/bin/activate sudo make install_antlr_cli make install_dev generate - name: Install open-metadata dependencies run: | source env/bin/activate make install_all install_test - name: Start Server and Ingest Sample Data env: INGESTION_DEPENDENCY: "mysql,elasticsearch" run: ./docker/run_local_docker.sh -m no-ui timeout-minutes: 30 - name: Run Python Tests id: e2e-test continue-on-error: true env: E2E_TEST: ${{ matrix.e2e-test }} E2E_BQ_PROJECT_ID_TAXONOMY: ${{ secrets.TEST_BQ_PROJECT_ID_TAXONOMY }} E2E_BQ_PRIVATE_KEY: ${{ secrets.TEST_BQ_PRIVATE_KEY_E2E }} E2E_BQ_PROJECT_ID: ${{ secrets.TEST_BQ_PROJECT_ID }} E2E_BQ_PRIVATE_KEY_ID: ${{ secrets.TEST_BQ_PRIVATE_KEY_ID }} E2E_BQ_CLIENT_EMAIL: ${{ secrets.TEST_BQ_CLIENT_EMAIL }} E2E_BQ_CLIENT_ID: ${{ secrets.TEST_BQ_CLIENT_ID }} E2E_SNOWFLAKE_PASSWORD: ${{ secrets.TEST_SNOWFLAKE_PASSWORD }} E2E_SNOWFLAKE_USERNAME: ${{ secrets.TEST_SNOWFLAKE_USERNAME }} E2E_SNOWFLAKE_ACCOUNT: ${{ secrets.TEST_SNOWFLAKE_ACCOUNT }} E2E_SNOWFLAKE_DATABASE: ${{ secrets.TEST_SNOWFLAKE_DATABASE }} E2E_SNOWFLAKE_WAREHOUSE: ${{ secrets.TEST_SNOWFLAKE_WAREHOUSE }} run: | source env/bin/activate python -m pytest -c ingestion/setup.cfg ingestion/tests/cli_e2e/test_cli_$E2E_TEST.py - name: Slack on Failure if: steps.e2e-test.outcome != 'success' uses: slackapi/slack-github-action@v1.23.0 with: payload: | { "text": "🔥 Failed E2E Test for: ${{ matrix.e2e-test }} 🔥" } env: SLACK_WEBHOOK_URL: ${{ secrets.TEST_SLACK_WEBHOOK }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK - name: Force failure if: steps.e2e-test.outcome != 'success' run: | exit 1