stages: - build - test variables: CARGO_HOME: $CI_PROJECT_DIR/.cargo build-json-api: image: rust:slim-buster stage: build when: manual only: [ "master" ] before_script: - apt-get install default-libmysqlclient-dev # required to build/test mysql script: - cd json-api/ - cargo build --release # primarily used to cache between jobs # expirey time overwritten later for weekly builds artifacts: paths: - json-api/target/release/json-api expire_in: 15 mins test-json-api: image: rust:slim-buster stage: test needs: - build-json-api before_script: - apt-get install default-libmysqlclient-dev # required to build/test mysql script: - cd json-api/ - cargo test --release artifacts: paths: - json-api/target/release/json-api expire_in: 1 week name: json-api