Skip to content

Nightly code check #327

Nightly code check

Nightly code check #327

Workflow file for this run

name: Nightly code check
on:
workflow_dispatch:
schedule:
- cron: '0 4 * * *' # 4 am UTC every day
jobs:
code-check:
uses: ./.github/workflows/code-check.yml
unit-tests:
uses: ./.github/workflows/unit-tests.yml
secrets:
GIST_PAT: ${{ secrets.GIST_PAT }}
security-scan:
needs: [unit-tests]
uses: ./.github/workflows/security-scan.yml
secrets:
FOSSA_TOKEN: ${{ secrets.FOSSA_TOKEN }}
SONARCLOUD_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false # finish all jobs even if one fails
max-parallel: 2
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
python-version: ['3.7', '3.8', '3.9', '3.10']
steps:
- name: Collect Workflow Telemetry
uses: runforesight/foresight-workflow-kit-action@v1
if: ${{ always() }}
- name: Check out code
uses: actions/checkout@v2
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ".[dev]"
- name: Test with pytest
run: |
pytest tests/unit
- name: Setup database and engine
id: setup
uses: firebolt-db/integration-testing-setup@master
with:
firebolt-username: ${{ secrets.FIREBOLT_USERNAME }}
firebolt-password: ${{ secrets.FIREBOLT_PASSWORD }}
api-endpoint: "api.dev.firebolt.io"
region: "us-east-1"
db_suffix: ${{ format('{0}_{1}', matrix.os, matrix.python-version) }}
- name: Run integration tests
env:
USER_NAME: ${{ secrets.FIREBOLT_USERNAME }}
PASSWORD: ${{ secrets.FIREBOLT_PASSWORD }}
SERVICE_ID: ${{ secrets.SERVICE_ID }}
SERVICE_SECRET: ${{ secrets.SERVICE_SECRET }}
DATABASE_NAME: ${{ steps.setup.outputs.database_name }}
ENGINE_NAME: ${{ steps.setup.outputs.engine_name }}
ENGINE_URL: ${{ steps.setup.outputs.engine_url }}
STOPPED_ENGINE_NAME: ${{ steps.setup.outputs.stopped_engine_name }}
STOPPED_ENGINE_URL: ${{ steps.setup.outputs.stopped_engine_url }}
ACCOUNT_NAME: "firebolt"
FIREBOLT_BASE_URL: "api.dev.firebolt.io"
run: |
pytest -o log_cli=true -o log_cli_level=INFO --junit-xml=report/junit.xml tests/integration
- name: Foresight Test / Coverage Results
uses: runforesight/foresight-test-kit-action@v1
if: success() || failure()
with:
test_format: JUNIT
test_framework: PYTEST
test_path: ./report/
tags: |
type:"Nightly"
os:${{ matrix.os }}
python:${{ matrix.python-version }}
language:"Python"
- name: Slack Notify of failure
if: failure()
id: slack
uses: firebolt-db/action-slack-nightly-notify@v1
with:
os: ${{ matrix.os }}
programming-language: Python
language-version: ${{ matrix.python-version }}
notifications-channel: 'ecosystem-ci-notifications'
slack-api-key: ${{ secrets.SLACK_BOT_TOKEN }}