Add agent customization: agents, hooks, skills, and instructions #8136
Workflow file for this run
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: Testing | |
| # yamllint disable-line rule:truthy | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| DEFAULT_PYTHON: "3.13" | |
| HAS_CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN != '' }} | |
| HAS_SONAR_TOKEN: ${{ secrets.SONAR_TOKEN != '' }} | |
| jobs: | |
| pytest: | |
| name: Python ${{ matrix.python }} | |
| runs-on: ubuntu-latest | |
| permissions: | |
| actions: write | |
| contents: read | |
| strategy: | |
| matrix: | |
| python: ["3.12", "3.13", "3.14"] | |
| steps: | |
| - name: ⤵️ Check out code from GitHub | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: 🏗 Set up uv | |
| uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | |
| with: | |
| enable-cache: true | |
| - name: 🏗 Set up Python ${{ matrix.python }} | |
| id: python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: 🏗 Install dependencies | |
| run: uv sync --dev | |
| - name: 🚀 Run pytest | |
| run: uv run pytest --cov=bsblan tests | |
| - name: ⬆️ Upload coverage artifact | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: coverage-${{ matrix.python }} | |
| include-hidden-files: true | |
| path: .coverage | |
| coverage: | |
| runs-on: ubuntu-latest | |
| needs: pytest | |
| permissions: | |
| actions: read | |
| contents: read | |
| pull-requests: read | |
| steps: | |
| - name: ⤵️ Check out code from GitHub | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: ⬇️ Download coverage data | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| - name: 🏗 Set up uv | |
| uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | |
| with: | |
| enable-cache: true | |
| - name: 🏗 Set up Python ${{ env.DEFAULT_PYTHON }} | |
| id: python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: ${{ env.DEFAULT_PYTHON }} | |
| - name: 🏗 Install dependencies | |
| run: uv sync --dev | |
| - name: 🚀 Process coverage results | |
| run: | | |
| uv run python -m coverage combine coverage*/.coverage* | |
| uv run python -m coverage xml -i | |
| - name: 🚀 Upload coverage report | |
| if: env.HAS_CODECOV_TOKEN == 'true' | |
| uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1 | |
| with: | |
| fail_ci_if_error: true | |
| files: coverage.xml | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: 🚀 Upload coverage report (tokenless) | |
| if: env.HAS_CODECOV_TOKEN != 'true' && github.event_name == 'pull_request' | |
| uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1 | |
| with: | |
| fail_ci_if_error: false | |
| files: coverage.xml | |
| - name: ℹ️ Skip Codecov upload (missing token) | |
| if: env.HAS_CODECOV_TOKEN != 'true' && github.event_name != 'pull_request' | |
| run: echo "CODECOV_TOKEN is not set; skipping Codecov upload." | |
| - name: SonarQube Cloud Scan | |
| if: env.HAS_SONAR_TOKEN == 'true' && (github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork) | |
| # yamllint disable-line rule:line-length | |
| uses: SonarSource/sonarqube-scan-action@7006c4492b2e0ee0f816d36501671557c97f5995 # v8.1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| - name: ℹ️ Skip SonarCloud scan (missing token) | |
| if: env.HAS_SONAR_TOKEN != 'true' | |
| run: echo "SONAR_TOKEN is not set; skipping SonarCloud scan." |