chore(deps): bump certifi from 2025.6.15 to 2025.10.5 #3663
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 | |
| on: | |
| pull_request: | |
| branches: | |
| - "main" | |
| push: | |
| branches: | |
| - "main" | |
| workflow_dispatch: | |
| env: | |
| IMAGE_NAME: virtool/virtool | |
| REGISTRY: ghcr.io | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Build the Docker image so we now it is successful before we create a release and try | |
| # to push a production image to the registry. | |
| build: | |
| name: Build | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Build | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| # Check code formatting with ruff. | |
| ruff-format: | |
| name: Ruff / Format | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install mise | |
| uses: jdx/mise-action@v2 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| - name: Set up Python | |
| run: uv python install | |
| - name: Install dependencies | |
| run: uv sync | |
| - name: Check formatting | |
| run: mise run format:check | |
| # Generate the OpenAPI specification and upload it as an artifact. | |
| oas: | |
| name: Generate OAS | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install mise | |
| uses: jdx/mise-action@v2 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| - name: Set up Python | |
| run: uv python install | |
| - name: Install dependencies | |
| run: uv sync | |
| - name: Generate OAS | |
| run: mise run oas | |
| - name: Upload OAS | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: openapi.json | |
| path: virtool/spec/openapi.json | |
| # Run our test suite. | |
| test: | |
| name: Test | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install mise | |
| uses: jdx/mise-action@v2 | |
| - name: Build test environment | |
| run: mise run test:build | |
| - name: Run tests | |
| run: mise run test -- -n 3 --snapshot-details --snapshot-warn-unused | |
| - name: Cleanup | |
| if: always() | |
| run: mise run test:down | |
| release: | |
| name: "Publish / Release" | |
| runs-on: ubuntu-24.04 | |
| if: github.repository_owner == 'Virtool' && github.event_name == 'push' | |
| needs: [build, oas, test, ruff-format] | |
| outputs: | |
| git-tag: ${{ steps.semantic.outputs.git-tag }} | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Download OAS | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openapi.json | |
| path: virtool/spec/openapi.json | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: Install semantic-release | |
| run: npm i [email protected] @semantic-release/[email protected] [email protected] | |
| - name: Run semantic-release | |
| id: semantic | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: npx semantic-release | |
| ghcr: | |
| name: "Publish / GHCR" | |
| runs-on: ubuntu-24.04 | |
| if: github.repository_owner == 'Virtool' && github.event_name == 'push' && needs.release.outputs.git-tag != '' | |
| needs: [release] | |
| permissions: | |
| packages: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ needs.release.outputs.git-tag }} | |
| - name: Login to Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract Docker Metadata | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| context: git | |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} | |
| - name: Build and Push | |
| id: push | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| - name: Trigger Cloudflare Hook | |
| if: steps.semantic.outputs.git-tag != '' | |
| run: curl -X POST ${{ secrets.CLOUDFLARE_HOOK }} | |