test: trigger CI workflow #25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - Code Testing Workflow | |
| on: | |
| pull_request: | |
| branches: | |
| - develop | |
| - main | |
| - "feature/*" | |
| - "hotfix/*" | |
| paths: | |
| - "src/**" | |
| - "tests/**" | |
| - ".github/workflows/**" | |
| push: | |
| branches: | |
| - develop | |
| - main | |
| paths: | |
| - "src/**" | |
| - "tests/**" | |
| - ".github/workflows/**" | |
| jobs: | |
| test: | |
| name: Run Tests and Post Coverage | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| env: | |
| BASE_URL: ${{ secrets.BASE_URL }} | |
| API_KEY: ${{ secrets.API_KEY }} | |
| WEBHOOK_SECRET: ${{ secrets.WEBHOOK_SECRET }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.9" | |
| - name: Set up Node (for Allure CLI) | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "18" | |
| - name: Install dependencies | |
| run: | | |
| python -m venv venv | |
| source venv/bin/activate | |
| pip install --upgrade pip | |
| pip install pytest pytest-cov allure-pytest | |
| pip install -r requirements.txt | |
| npm install -g allure-commandline | |
| - name: Run tests (coverage + allure results) | |
| run: | | |
| source venv/bin/activate | |
| pytest --cov=src --cov-report=xml --cov-report=term \ | |
| --alluredir=allure-results > coverage.txt | |
| pytest --junitxml=pytest.xml | |
| - name: Pull previous Allure history (if exists) | |
| run: | | |
| git fetch origin allure-report || true | |
| if git ls-remote --exit-code origin allure-report; then | |
| git checkout origin/allure-report -- history || true | |
| if [ -d history ]; then | |
| mkdir -p allure-results/history | |
| cp -r history/* allure-results/history/ || true | |
| fi | |
| fi | |
| continue-on-error: true | |
| - name: Generate Allure Report | |
| run: | | |
| allure generate allure-results -o allure-report --clean | |
| if [ -d allure-report/history ]; then ls -R allure-report/history | head -n 20; fi | |
| - name: Pytest coverage comment (PR only) | |
| if: github.event_name == 'pull_request' | |
| uses: MishaKav/pytest-coverage-comment@main | |
| with: | |
| pytest-coverage-path: ./coverage.txt | |
| junitxml-path: ./pytest.xml | |
| - name: Deploy Allure Report to GitHub Pages branch | |
| if: github.event_name == 'push' | |
| uses: peaceiris/actions-gh-pages@v3 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_branch: allure-report | |
| publish_dir: ./allure-report | |
| keep_files: false | |
| force_orphan: false |