# Use the latest 2.1 version of CircleCI pipeline process engine. # See: https://circleci.com/docs/2.0/configuration-reference version: 2.1 # Define a job to be invoked later in a workflow. # See: https://circleci.com/docs/2.0/configuration-reference/#jobs jobs: build: # Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub. # See: https://circleci.com/docs/2.0/configuration-reference/#docker-machine-macos-windows-executor docker: - image: cimg/rust:1.58.1 - image: cimg/postgres:14.0 auth: username: sharding_user password: sharding_user environment: POSTGRES_USER: root POSTGRES_DB: shard0 # Add steps to the job # See: https://circleci.com/docs/2.0/configuration-reference/#steps steps: - checkout - restore_cache: key: cargo-lock-3-{{ checksum "Cargo.lock" }} - run: name: "Install dependencies" command: "apt-get update && apt-get install postgresql-contrib-12 postgresql-client-12" - run: name: "Build" command: "cargo build --release" - run: name: "Test" command: "cargo test" - run: name: "Launch in background" command: "./target/release/pgcat &" - run: name: "PgBench initialize" command: "pgbench -i -h 127.0.0.1 -p 6432" - run: name: "PgBench run" command: "pgbench -h 127.0.0.1 -p 6432 --protocol extended -t 100 -c 2" - save_cache: key: cargo-lock-3-{{ checksum "Cargo.lock" }} paths: - target - ~/.cargo # Invoke jobs via workflows # See: https://circleci.com/docs/2.0/configuration-reference/#workflows workflows: build: jobs: - build