improve search query #98
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: Vectorize Server CI | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - "server/**" | |
| - "worker/**" | |
| - "core/**" | |
| - ".github/workflows/server_ci.yml" | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "server/**" | |
| - "worker/**" | |
| - "core/**" | |
| - ".github/workflows/server_ci.yml" | |
| jobs: | |
| lint: | |
| name: Run linters | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust minimal nightly with clippy and rustfmt | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Cargo format | |
| run: cargo fmt --all --check | |
| - name: Clippy | |
| run: cargo clippy | |
| test-server: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust stable toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install sys dependencies | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y postgresql postgresql-contrib libopenblas-dev libreadline-dev | |
| - name: start containers | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@postgres:5432/postgres | |
| run: | | |
| make compose-server-up | |
| - name: Test | |
| # skip when on external forks | |
| if: github.repository_owner == 'ChuckHend' | |
| env: | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| CO_API_KEY: ${{ secrets.CO_API_KEY }} | |
| PORTKEY_API_KEY: ${{ secrets.PORTKEY_API_KEY }} | |
| PORTKEY_VIRTUAL_KEY_OPENAI: ${{ secrets.PORTKEY_VIRTUAL_KEY_OPENAI }} | |
| VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }} | |
| DATABASE_URL: postgresql://postgres:postgres@0.0.0.0:5432/postgres | |
| run: | | |
| cd server | |
| cargo test | |
| - name: debugging info | |
| if: failure() | |
| run: | | |
| docker compose -f server/docker-compose.yml logs | |
| docker ps | |
| build_and_push_amd64: | |
| name: Build and push AMD64 images | |
| runs-on: ubuntu-latest | |
| outputs: | |
| short_sha: ${{ steps.versions.outputs.SHORT_SHA }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set version strings | |
| id: versions | |
| run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push -- Commit | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: ./server/Dockerfile | |
| platforms: linux/amd64 | |
| push: true | |
| tags: | | |
| ghcr.io/chuckhend/vectorize-server:${{ steps.versions.outputs.SHORT_SHA }}-amd64 | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| provenance: true | |
| sbom: true | |
| build_and_push_arm64: | |
| name: Build and push ARM64 images | |
| runs-on: ubicloud-standard-2-arm-ubuntu-2204 | |
| outputs: | |
| short_sha: ${{ steps.versions.outputs.SHORT_SHA }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set version strings | |
| id: versions | |
| run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push -- Commit | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: ./server/Dockerfile | |
| platforms: linux/arm64 | |
| push: true | |
| tags: | | |
| ghcr.io/chuckhend/vectorize-server:${{ steps.versions.outputs.SHORT_SHA }}-arm64 | |
| provenance: true | |
| sbom: true | |
| create_manifest: | |
| name: Create and Push Manifest | |
| runs-on: ubuntu-latest | |
| needs: [build_and_push_arm64, build_and_push_amd64] | |
| outputs: | |
| short_sha: ${{ steps.versions.outputs.SHORT_SHA }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Login to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Set version string | |
| id: versions | |
| run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Create and push Docker manifest -- Commit | |
| run: | | |
| # Create a multi-arch image manifest from the two architecture-specific tags | |
| docker buildx imagetools create \ | |
| --tag ghcr.io/chuckhend/vectorize-server:${{ steps.versions.outputs.SHORT_SHA }} \ | |
| ghcr.io/chuckhend/vectorize-server:${{ steps.versions.outputs.SHORT_SHA }}-arm64 \ | |
| ghcr.io/chuckhend/vectorize-server:${{ steps.versions.outputs.SHORT_SHA }}-amd64 | |
| # Inspect the created manifest to ensure it's correct | |
| docker buildx imagetools inspect ghcr.io/chuckhend/vectorize-server:${{ steps.versions.outputs.SHORT_SHA }} |