Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from env.tasks.task_types import CICDTask | |
| MEDIUM_TASKS: list[CICDTask] = [ | |
| CICDTask( | |
| task_id="medium-python-version", | |
| title="Align Python version", | |
| description="Tests require Python 3.11 but workflow pins an older version.", | |
| difficulty="medium", | |
| failure_stage="build", | |
| broken_config=""" | |
| name: CI | |
| on: [push] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.8" | |
| - run: pip install -r requirements.txt | |
| - run: pytest -q | |
| """.strip(), | |
| expected_config=""" | |
| name: CI | |
| on: [push] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - run: pip install -r requirements.txt | |
| - run: pytest -q | |
| """.strip(), | |
| logs="build failed: package requires python>=3.11", | |
| error_message="python interpreter version mismatch", | |
| actual_bug="workflow pins python-version 3.8 while project requires 3.11", | |
| metadata={"broken_token": 'python-version: "3.8"', "fixed_token": 'python-version: "3.11"'}, | |
| ), | |
| CICDTask( | |
| task_id="medium-cache-key", | |
| title="Fix cache invalidation key", | |
| description="Dependency cache key ignores lockfile hash and restores stale dependencies.", | |
| difficulty="medium", | |
| failure_stage="test", | |
| broken_config=""" | |
| name: CI | |
| on: [push] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.npm | |
| key: node-modules-${{ runner.os }} | |
| - run: npm ci | |
| - run: npm test | |
| """.strip(), | |
| expected_config=""" | |
| name: CI | |
| on: [push] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.npm | |
| key: node-modules-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
| - run: npm ci | |
| - run: npm test | |
| """.strip(), | |
| logs="test failed: stale cache restored old dependency tree", | |
| error_message="cache key misses lockfile fingerprint", | |
| actual_bug="cache key is too broad and never invalidates on dependency changes", | |
| metadata={"broken_token": "key: node-modules-${{ runner.os }}", "fixed_token": "hashFiles('**/package-lock.json')"}, | |
| ), | |
| CICDTask( | |
| task_id="medium-artifact-permissions", | |
| title="Repair artifact permissions", | |
| description="Artifact upload fails due to insufficient token permissions.", | |
| difficulty="medium", | |
| failure_stage="deploy", | |
| broken_config=""" | |
| name: CI | |
| on: [push] | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: npm ci | |
| - run: npm run build | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: web-build | |
| path: dist/ | |
| """.strip(), | |
| expected_config=""" | |
| name: CI | |
| on: [push] | |
| permissions: | |
| contents: read | |
| actions: write | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: npm ci | |
| - run: npm run build | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: web-build | |
| path: dist/ | |
| """.strip(), | |
| logs="deploy stage failed: Resource not accessible by integration", | |
| error_message="insufficient permissions for upload-artifact", | |
| actual_bug="actions:write permission missing from workflow permissions", | |
| metadata={"broken_token": "permissions:\n contents: read", "fixed_token": "actions: write"}, | |
| ), | |
| ] | |