Skip to content

Update remove_duplicate.py #121

Update remove_duplicate.py

Update remove_duplicate.py #121

Workflow file for this run

name: CI
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
schedule:
- cron: '0 2 * * *' # Run nightly at 2 AM UTC
workflow_dispatch:
jobs:
smoke-test:
if: github.event_name != 'schedule'
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.14'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
- name: Run smoke tests (unit + api, excluding ai generated)
run: |
python -m pytest -m "unit or api" --tb=short
- name: Run Robot Framework smoke tests
run: |
mkdir -p temps/robot_smoke
python -m robot --outputdir temps/robot_smoke robot_demo/calculator/
- name: Upload smoke artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: smoke-results-${{ github.run_id }}-${{ github.run_attempt }}
path: |
temps/allure-results/
temps/robot_smoke/
if-no-files-found: warn
retention-days: 14
regression-test:
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.14'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
- name: Cache Playwright browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('requirements.txt') }}
- name: Install Playwright browsers
run: |
python -m playwright install --with-deps
- name: Run all pytest tests (excluding ai generated)
run: |
python -m pytest -m "not ai" --tb=short --maxfail=5
env:
PW_HEADLESS: 1
- name: Run all Robot Framework tests
run: |
mkdir -p temps
python -m robot --outputdir temps robot_demo/
- name: Install Allure CLI
run: |
curl -fsSL -o allure.tgz https://github.com/allure-framework/allure2/releases/download/2.27.0/allure-2.27.0.tgz
tar -zxf allure.tgz
sudo mv allure-2.27.0 /opt/allure
sudo ln -sf /opt/allure/bin/allure /usr/bin/allure
- name: Generate Allure report
if: always()
run: |
allure generate temps/allure-results -o allure-report --clean
continue-on-error: true
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: regression-results-${{ github.run_id }}-${{ github.run_attempt }}
path: |
temps/allure-results/
allure-report/
temps/log.html
temps/report.html
temps/output.xml
if-no-files-found: warn
retention-days: 21