mirror of
https://github.com/postgresml/pgcat.git
synced 2026-03-23 01:16:30 +00:00
* Ruby integration tests * forgot a file * refactor * refactoring * more refactoring * remove config helper * try multiple databases * fix * more databases * Use pg stats * ports * speed * Fix tests * preload library * comment
83 lines
3.1 KiB
YAML
83 lines
3.1 KiB
YAML
# 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: levkk/pgcat-ci:latest
|
|
environment:
|
|
RUST_LOG: info
|
|
RUSTFLAGS: "-C instrument-coverage"
|
|
LLVM_PROFILE_FILE: "pgcat-%m.profraw"
|
|
- image: postgres:14
|
|
command: ["postgres", "-p", "5432", "-c", "shared_preload_libraries=pg_stat_statements"]
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_DB: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
- image: postgres:14
|
|
command: ["postgres", "-p", "7432", "-c", "shared_preload_libraries=pg_stat_statements"]
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_DB: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
- image: postgres:14
|
|
command: ["postgres", "-p", "8432", "-c", "shared_preload_libraries=pg_stat_statements"]
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_DB: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
- image: postgres:14
|
|
command: ["postgres", "-p", "9432", "-c", "shared_preload_libraries=pg_stat_statements"]
|
|
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 python3 python3-pip lcov llvm-11 && sudo apt-get upgrade curl"
|
|
- run:
|
|
name: "Install rust tools"
|
|
command: "cargo install cargo-binutils rustfilt && rustup component add llvm-tools-preview"
|
|
- run:
|
|
name: "Build"
|
|
command: "cargo build"
|
|
- run:
|
|
name: "Tests"
|
|
command: "cargo test && bash .circleci/run_tests.sh && .circleci/generate_coverage.sh"
|
|
- store_artifacts:
|
|
path: /tmp/cov
|
|
destination: coverage-data
|
|
- 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
|