Skip to content

Update prisma requirement from <0.15,>=0.13.1 to >=0.13.1,<0.16 #736

Update prisma requirement from <0.15,>=0.13.1 to >=0.13.1,<0.16

Update prisma requirement from <0.15,>=0.13.1 to >=0.13.1,<0.16 #736

Workflow file for this run

name: Tests
on:
push:
# branches-ignore:
# - main
# - dev
workflow_dispatch:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
static-analysis:
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies and library
shell: bash
run: |
set -ux
python -m pip install --upgrade pip
pip install -e ".[submodules,docs,lint,testing]"
- name: Run mypy
shell: bash
run: mypy fastagency_studio tests
- name: Run bandit
shell: bash
run: bandit -c pyproject.toml -r fastagency_studio
- name: Run Semgrep
shell: bash
run: semgrep scan --config auto --error
test-without-llms:
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
fail-fast: false
uses: ./.github/workflows/test.yaml
with:
python-version: ${{ matrix.python-version }}
environment: null
use-llms: ""
secrets: inherit # pragma: allowlist secret
test-with-anthropic:
uses: ./.github/workflows/test.yaml
with:
python-version: "3.9"
environment: testing
use-llms: "anthropic"
secrets: inherit # pragma: allowlist secret
test-with-azure_oai:
uses: ./.github/workflows/test.yaml
with:
python-version: "3.9"
environment: testing
use-llms: "azure_oai"
secrets: inherit # pragma: allowlist secret
test-with-openai:
uses: ./.github/workflows/test.yaml
with:
python-version: "3.9"
environment: testing
use-llms: "openai"
secrets: inherit # pragma: allowlist secret
test-with-togetherai:
uses: ./.github/workflows/test.yaml
with:
python-version: "3.9"
environment: testing
use-llms: "togetherai"
secrets: inherit # pragma: allowlist secret
test-with-llm:
uses: ./.github/workflows/test.yaml
with:
python-version: "3.9"
environment: testing
use-llms: "llm"
secrets: inherit # pragma: allowlist secret
test-macos-latest:
if: github.event.pull_request.draft == false
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: pyproject.toml
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: pip install .[submodules,docs,testing]
- name: Prisma
run: prisma generate
- name: Test
run: bash scripts/test.sh -m "not (db or nats or anthropic or azure_oai or openai or togetherai or llm)"
test-windows-latest:
if: github.event.pull_request.draft == false
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: pyproject.toml
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: pip install .[submodules,docs,testing]
- name: Prisma
run: prisma generate
- name: Test
run: bash scripts/test.sh -m "not (db or nats or anthropic or azure_oai or openai or togetherai or llm)"
coverage-combine:
needs:
- test-without-llms
- test-with-llm
- test-with-anthropic
- test-with-azure_oai
- test-with-openai
- test-with-togetherai
- test-windows-latest
- test-macos-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.9"
cache: "pip"
cache-dependency-path: pyproject.toml
- name: Get coverage files
uses: actions/download-artifact@v4
with:
pattern: .coverage*
path: coverage
merge-multiple: true
- run: pip install coverage[toml]
- run: ls -la coverage
- run: coverage combine coverage
- run: coverage report
- run: coverage html --show-contexts --title "FastAgency coverage for ${{ github.sha }}"
- name: Store coverage html
uses: actions/upload-artifact@v4
with:
name: coverage-html
path: htmlcov
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: airtai/fastagency
unit-test-wasp:
if: github.ref != 'refs/heads/dev' && github.ref != 'refs/heads/main' && github.event.pull_request.draft == false
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
steps:
- name: Checkout repository with cached git lfs
uses: nschloe/action-cached-lfs-checkout@v1
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Install wasp
run: curl -sSL https://get.wasp-lang.dev/installer.sh | sh -s -- -v 0.14.0
- name: Temporary wasp fix
run: |
PATCH_FILE_PATH=$(cat $(whereis wasp | cut -d " " -f 2) | tail -1 | cut -d " " -f 1 | cut -d "=" -f 2)/Generator/templates/server/package.json
echo $PATCH_FILE_PATH
sed -i 's/"postinstall": "patch-package"/"postinstall": ""/' $PATCH_FILE_PATH
- name: Run client tests
run: cd app && wasp test client run --silent
- name: Build wasp
run: cd app && wasp build
- name: Build frontend
run: cd app && cd .wasp/build/web-app && npm install && REACT_APP_API_URL=$REACT_APP_API_URL npm run build
pre-commit-check:
runs-on: ubuntu-latest
env:
SKIP: "static-analysis"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Set $PY environment variable
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: Install Dependencies
run: pip install .[submodules,docs,testing]
- name: Prisma
run: prisma generate
- uses: pre-commit/action@v3.0.1
# https://github.com/marketplace/actions/alls-green#why
check: # This job does nothing and is only used for the branch protection
# from: https://github.com/re-actors/alls-green
# Important: For this to work properly, it is a must to have the job always
# run, otherwise GitHub will make it skipped when any of the dependencies
# fail. In some contexts, skipped is interpreted as success which may lead
# to undersired, unobvious and even dangerous (as in security breach
# "dangerous") side-effects.
if: always()
needs:
- static-analysis
- pre-commit-check
- coverage-combine
- test-macos-latest
- test-windows-latest
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1 # nosemgrep
with:
# allowed-failures: docs, linters
# allowed-skips: non-voting-flaky-job
jobs: ${{ toJSON(needs) }}