Switch to hatchling, uv sources, and from_artifact() APIs #51
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: CI/CD Pipeline | |
| on: | |
| push: | |
| branches: [master, release] | |
| pull_request: | |
| branches: [master] | |
| release: | |
| types: [published] | |
| env: | |
| REGISTRY: ghcr.io | |
| IMAGE_NAME: ${{ github.repository }} | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| - name: Install dependencies | |
| run: uv sync --extra dev | |
| - name: ruff lint | |
| run: uv run ruff check src/vtk_mcp/ | |
| - name: ruff format check | |
| run: uv run ruff format --check src/vtk_mcp/ | |
| actionlint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install actionlint | |
| run: | | |
| bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) | |
| echo "${PWD}" >> "$GITHUB_PATH" | |
| - name: Run actionlint | |
| run: actionlint | |
| test: | |
| name: Test (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| needs: [lint, actionlint] | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync --extra dev | |
| - name: Run unit tests | |
| run: uv run pytest -m unit -v | |
| - name: Run client tests | |
| run: uv run pytest tests/test_client_no_server.py -v | |
| - name: Run integration tests | |
| run: uv run pytest -m integration -v | |
| docker-deploy: | |
| name: Build and Push Deployment Image | |
| runs-on: ubuntu-latest | |
| needs: [lint, actionlint, test] | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/master' || github.event_name == 'release' | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Podman | |
| run: | | |
| sudo apt update | |
| sudo apt install -y podman | |
| - name: Log in to GitHub Container Registry | |
| run: | | |
| echo "${{ secrets.GITHUB_TOKEN }}" | podman login ghcr.io -u ${{ github.repository_owner }} --password-stdin | |
| - name: Get short SHA | |
| id: slug | |
| run: echo "SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)" >> "$GITHUB_OUTPUT" | |
| - name: Build and push deployment image | |
| run: | | |
| GITHUB_REPOSITORY="$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" | |
| podman build -f deploy.Dockerfile \ | |
| -t "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:latest" \ | |
| -t "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ github.sha }}" \ | |
| -t "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ steps.slug.outputs.SHORT_SHA }}" \ | |
| . | |
| podman push "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:latest" | |
| podman push "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ github.sha }}" | |
| podman push "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ steps.slug.outputs.SHORT_SHA }}" |