This GitLab CI configuration is valid. Learn more
.gitlab-ci.yml 2.08 KiB
image: rust:latest
variables:
  CARGO_HOME: $CI_PROJECT_DIR/cargo
  DOCKER_HOST: tcp://docker:2376
  DOCKER_TLS_CERTDIR: "/certs"
before_script:
  - cargo install cargo-audit
  - rustup component add rustfmt
  - rustup component add clippy
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
    - main
    - sz/bulk_measurements
pages:
  stage: docs
  script:
    - rm -rf target/doc 2>/dev/null || true
    - cargo doc --no-deps
    - 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
717273747576
memri-docs: stage: docs only: - dev trigger: memri/docs.memri.io