diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 067e432b0..6a6d01c57 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -285,54 +285,6 @@ jobs: path: build/nox-integration-tests-output.log retention-days: 30 - e2e_tests: - runs-on: docker - timeout-minutes: 45 - container: - image: python:3.13-slim - steps: - - name: Install system dependencies (nodejs for checkout, git for E2E tests) - run: | - apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - - - uses: actions/checkout@v4 - - - name: Install uv and nox - run: | - pip install -q uv==${{ env.UV_VERSION }} nox - - - name: Cache uv packages - uses: actions/cache@v3 - with: - path: ~/.cache/uv - key: uv-${{ hashFiles('pyproject.toml') }} - restore-keys: | - uv- - - - name: Run E2E tests via nox - run: | - mkdir -p build - nox -s e2e_tests 2>&1 | tee build/nox-e2e-tests-output.log - env: - NOX_DEFAULT_VENV_BACKEND: uv - # Run E2E suites in parallel via pabot. 4 workers keeps - # wall-clock time well under the 45-minute timeout while - # staying within the memory budget of the docker runner. - TEST_PROCESSES: "4" - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} - - - name: Upload E2E tests log artifact - if: failure() - uses: actions/upload-artifact@v3 - with: - name: ci-logs-e2e-tests - path: | - build/nox-e2e-tests-output.log - build/reports/robot-e2e/ - retention-days: 30 - coverage: runs-on: docker container: @@ -605,7 +557,7 @@ jobs: echo "=== Push access smoke-test passed ===" status-check: if: always() - needs: [lint, typecheck, security, quality, unit_tests, integration_tests, e2e_tests, coverage, build, docker, helm, push-validation] + needs: [lint, typecheck, security, quality, unit_tests, integration_tests, coverage, build, docker, helm, push-validation] runs-on: docker container: image: python:3.13-slim @@ -618,7 +570,6 @@ jobs: echo "quality: ${{ needs.quality.result }}" echo "unit_tests: ${{ needs.unit_tests.result }}" echo "integration_tests: ${{ needs.integration_tests.result }}" - echo "e2e_tests: ${{ needs.e2e_tests.result }}" echo "coverage: ${{ needs.coverage.result }}" echo "build: ${{ needs.build.result }}" echo "docker: ${{ needs.docker.result }}" @@ -631,7 +582,6 @@ jobs: [ "${{ needs.quality.result }}" != "success" ] || \ [ "${{ needs.unit_tests.result }}" != "success" ] || \ [ "${{ needs.integration_tests.result }}" != "success" ] || \ - [ "${{ needs.e2e_tests.result }}" != "success" ] || \ [ "${{ needs.coverage.result }}" != "success" ] || \ [ "${{ needs.build.result }}" != "success" ] || \ [ "${{ needs.docker.result }}" != "success" ] || \ diff --git a/.forgejo/workflows/master.yml b/.forgejo/workflows/master.yml index 5ee95f929..a3bece1fe 100644 --- a/.forgejo/workflows/master.yml +++ b/.forgejo/workflows/master.yml @@ -123,4 +123,51 @@ jobs: name: asv-results-pr path: /tmp/asv-results.tar retention-days: 30 + e2e_tests: + if: forgejo.event_name == 'push' + runs-on: docker + timeout-minutes: 45 + container: + image: python:3.13-slim + steps: + - name: Install system dependencies (nodejs for checkout, git for E2E tests) + run: | + apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* + - uses: actions/checkout@v4 + + - name: Install uv and nox + run: | + pip install -q uv==${{ env.UV_VERSION }} nox + + - name: Cache uv packages + uses: actions/cache@v3 + with: + path: ~/.cache/uv + key: uv-${{ hashFiles('pyproject.toml') }} + restore-keys: | + uv- + + - name: Run E2E tests via nox + run: | + mkdir -p build + nox -s e2e_tests 2>&1 | tee build/nox-e2e-tests-output.log + env: + NOX_DEFAULT_VENV_BACKEND: uv + # Run E2E suites in parallel via pabot. 4 workers keeps + # wall-clock time well under the 45-minute timeout while + # staying within the memory budget of the docker runner. + TEST_PROCESSES: "4" + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} + + - name: Upload E2E tests log artifact + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ci-logs-e2e-tests + path: | + build/nox-e2e-tests-output.log + build/reports/robot-e2e/ + retention-days: 30 \ No newline at end of file