This GitLab CI configuration is valid. Learn more
.gitlab-ci.yml 2.35 KiB
image: rust:latest
variables:
  CARGO_HOME: $CI_PROJECT_DIR/cargo
  APT_CACHE_DIR: $CI_PROJECT_DIR/apt
  DOCKER_HOST: tcp://docker:2376
  DOCKER_TLS_CERTDIR: "/certs"
before_script:
  - apt-get update -o dir::cache::archives="$APT_CACHE_DIR" -yq
  - apt-get install -o dir::cache::archives="$APT_CACHE_DIR" -y libsqlcipher-dev
  - cargo install cargo-audit
  - rustup component add rustfmt
  - rustup component add clippy
cache:
  key: "$CI_JOB_NAME"
  paths:
    - $CI_PROJECT_DIR/apt/
    - $CI_PROJECT_DIR/cargo/
    - $CI_PROJECT_DIR/target/
stages:
  - test
  - docs
  - publish_docker_images
test:
  stage: test
  script:
    - cargo fmt --all -- --check
    - touch pod/src/main.rs && cargo clippy --all-targets --all-features -- -D warnings
    - TIME_CVE=RUSTSEC-2020-0071 && \
        CHRONO_CVE=RUSTSEC-2020-0159 && \
        cargo audit --ignore "$TIME_CVE" --ignore "$CHRONO_CVE"
    - RUST_LOG=info cargo test -- --nocapture
    - ./tools/test_curl.sh
benches:
  stage: test
  script:
    - cargo bench
  artifacts:
    paths:
      - target/criterion/
    expire_in: 10 weeks
publish_docker_images:
  stage: publish_docker_images
  tags:
    - internal-memri
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  before_script:
    - echo building for digital ocean
  script:
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
    - /kaniko/executor --cleanup --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg use_kubernetes=false --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-latest
    - echo "$DOCKER_AUTH_CONFIG" > /kaniko/.docker/config.json
    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg use_kubernetes=true --destination $Docker_Repo/polis/pod-dev:$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA
  only:
    - dev
    - prod
pages:
  stage: docs
  script:
    - rm -rf target/doc 2>/dev/null || true
    - cargo doc --no-deps
717273747576777879808182838485
- mkdir -p public/rustdoc - mv -T target/doc public/rustdoc - echo '<a href="./rustdoc/pod">rustdoc</a>' > public/index.html artifacts: paths: - public only: - dev memri-docs: stage: docs only: - dev trigger: memri/docs.memri.io