# 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 environment: RUST_LOG: info - image: postgres:14 # auth: # username: mydockerhub-user # password: $DOCKERHUB_PASSWORD environment: POSTGRES_USER: postgres POSTGRES_DB: postgres POSTGRES_PASSWORD: postgres POSTGRES_HOST_AUTH_METHOD: scram-sha-256 # Add steps to the job # See: https://circleci.com/docs/2.0/configuration-reference/#steps steps: - checkout - restore_cache: key: cargo-lock-2-{{ checksum "Cargo.lock" }} - run: name: "Lint" command: "cargo fmt --check" - run: name: "Install dependencies" command: "sudo apt-get update && sudo apt-get install -y psmisc postgresql-contrib-12 postgresql-client-12 ruby ruby-dev libpq-dev" - run: name: "Build" command: "cargo build" - run: name: "Test" command: "cargo test" - run: name: "Test end-to-end" command: "bash .circleci/run_tests.sh" - save_cache: key: cargo-lock-2-{{ checksum "Cargo.lock" }} paths: - target - ~/.cargo # Invoke jobs via workflows # See: https://circleci.com/docs/2.0/configuration-reference/#workflows workflows: build: jobs: - build