image: rust:1.40
variables:
GIT_SUBMODULE_STRATEGY: normal
CARGO_HOME: /tmp/.cargo
CARGO_TARGET_DIR: /tmp/.cargo/target
DIST_TAG: $CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
stages:
- test
# - build
# - dist_dev
# - dist_prod
# add /tmp/.cargo to runners.docker.volumes in runner config to share compiled deps between runs
test_and_clippy:
stage: test
tags:
script:
- rustup component add rustfmt
- rustup component add clippy
- CARGO_TARGET_DIR=/tmp/.cargo/target CARGO_HOME=/tmp/.cargo cargo fmt
- CARGO_TARGET_DIR=/tmp/.cargo/target CARGO_HOME=/tmp/.cargo CARGO_INCREMENTAL=1 RUST_BACKTRACE=1 cargo test -- --nocapture
- CARGO_TARGET_DIR=/tmp/.cargo/target CARGO_HOME=/tmp/.cargo CARGO_INCREMENTAL=1 RUST_BACKTRACE=1 cargo clippy --tests
# compile:
# stage: build
# only:
# - tags
# - master
# tags: [rust]
# script:
# - CARGO_TARGET_DIR=/tmp/.cargo/target CARGO_HOME=/tmp/.cargo cargo build --release
# - mkdir dist
# - cp /tmp/.cargo/target/release/templates dist/
# - cp /tmp/.cargo/target/release/services dist/
# - cp evt_core.nomad dist/
# - cp krakend_conf.json dist/
# # - cp -r evt_design/static/* dist/
# # - cp -r evt_design/templates/* dist/
# artifacts:
# paths:
# - dist/
# dist_dev:
# stage: dist_dev
# script:
# - echo "Setup known_hosts and ssh key to be able to deploy" && echo $DIST_TAG
# - eval $(ssh-agent -s)
# - echo "$DEV_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
# - mkdir -p ~/.ssh
# - chmod 700 ~/.ssh
# - ssh-keyscan $DEV_HOST >> ~/.ssh/known_hosts
# - chmod 644 ~/.ssh/known_hosts
# - echo "Deploy to dev server"
# - ssh $DEV_USER@$DEV_HOST -C "mkdir -p /srv/rw/$CI_PROJECT_NAME/$DIST_TAG/"
# - scp -r dist/* $DEV_USER@$DEV_HOST:/srv/rw/$CI_PROJECT_NAME/$DIST_TAG/
# environment:
# name: dev
# url: $DEV_URL
# dependencies:
# - compile
# only:
# - tags
# - master
# - dev
# when: manual
# tags:
# - rust
# dist_prod:
# stage: dist_prod
# script:
# - echo "Setup known_hosts and ssh key to be able to deploy" && echo $DIST_TAG
# - eval $(ssh-agent -s)
# - echo "$PROD_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
# - mkdir -p ~/.ssh
# - chmod 700 ~/.ssh
# - ssh-keyscan $PROD_HOST >> ~/.ssh/known_hosts
# - chmod 644 ~/.ssh/known_hosts
# - echo "Deploy to prod server"
# - ssh $PROD_USER@$PROD_HOST -C "mkdir -p /srv/rw/$CI_PROJECT_NAME/$DIST_TAG/"
# - scp -r dist/* $PROD_USER@$PROD_HOST:/srv/rw/$CI_PROJECT_NAME/$DIST_TAG/
# environment:
# name: prod
# url: $PROD_URL
# dependencies:
# - compile
# only:
# - tags
# tags:
# - rust