Skip to content

Add comprehensive MCP tests with mocked API portions #1988

Add comprehensive MCP tests with mocked API portions

Add comprehensive MCP tests with mocked API portions #1988

Workflow file for this run

name: Tests
on:
push:
branches:
- "develop"
pull_request_target:
types: [ opened, synchronize, reopened, labeled ]
branches:
- "develop"
workflow_dispatch:
jobs:
access-check:
runs-on: ubuntu-latest
steps:
- name: Check if codegen bot
id: check-bot
run: |
if [[ "${{ github.triggering_actor }}" == "codegen-sh[bot]" ]]; then
echo "is_bot=true" >> $GITHUB_OUTPUT
else
echo "is_bot=false" >> $GITHUB_OUTPUT
fi
- uses: actions-cool/check-user-permission@v2
if: steps.check-bot.outputs.is_bot == 'false'
with:
require: write
username: ${{ github.triggering_actor }}
error-if-missing: true
unit-tests:
needs: access-check
runs-on: ubuntu-latest-8
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup environment
uses: ./.github/actions/setup-environment
- name: Test with pytest
timeout-minutes: 5
run: |
uv run pytest \
-n auto \
--cov src \
--timeout 15 \
-o junit_suite_name="${{github.job}}" \
tests/unit
- uses: ./.github/actions/report
with:
flag: unit-tests
codecov_token: ${{ secrets.CODECOV_TOKEN }}
codemod-tests:
needs: access-check
# TODO: re-enable when this check is a develop required check
if: false
runs-on: ubuntu-latest-32
strategy:
matrix:
sync_graph: [ true, false ]
size: [ small, large ]
exclude:
# Exclude large codemod tests when not needed
- size: ${{(contains(github.event.pull_request.labels.*.name, 'big-codemod-tests') || github.event_name == 'push' || github.event_name == 'workflow_dispatch') && 'kevin' || 'large'}}
- size: large
sync_graph: true
concurrency:
group: ${{ github.workflow }}-${{github.ref}}-${{matrix.sync_graph}}-${{matrix.size}}-${{github.event_name == 'push'&& github.sha}}
cancel-in-progress: true
name: "Codemod tests ${{matrix.size}}: Sync Graph=${{matrix.sync_graph}}"
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup environment
uses: ./.github/actions/setup-environment
- name: Cache oss-repos
uses: ./.github/actions/setup-oss-repos
- name: Run ATS and Tests
uses: ./.github/actions/run-ats
timeout-minutes: 15
with:
default_tests: "tests/integration/codemod/test_codemods.py"
codecov_static_token: ${{ secrets.CODECOV_STATIC_TOKEN }}
codecov_token: ${{ secrets.CODECOV_TOKEN }}
collect_args: "--size=${{matrix.size}} --sync-graph=${{matrix.sync_graph}}"
ats_collect_args: "--size=${{matrix.size}},--sync-graph=${{matrix.sync_graph}},"
codecov_flags: codemod-tests-${{matrix.size}}-${{matrix.sync_graph}}
env:
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
integration-tests:
needs: access-check
runs-on: ubuntu-latest-16
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup environment
uses: ./.github/actions/setup-environment
- name: Test with pytest
timeout-minutes: 5
env:
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
GITHUB_TOKEN: ${{ secrets.GHA_PAT }}
run: |
uv run pytest \
-n auto \
-o junit_suite_name="${{github.job}}" \
tests/integration/codegen
- uses: ./.github/actions/report
with:
flag: integration-tests
codecov_token: ${{ secrets.CODECOV_TOKEN }}