stages: - test - production - build - prepare test: image: rust:alpine stage: test script: - apk add musl-dev - cargo install cargo2junit - cargo test -- -Z unstable-options --format json --report-time | cargo2junit > results.xml only: - master artifacts: reports: junit: results.xml production: stage: production image: ruby:latest needs: - test script: - apt-get update -qy - apt-get install -y ruby-dev - gem install dpl - gem install faraday -v 1.8.0 - dpl --provider=heroku --app=$HEROKU_APP --api-key=$HEROKU_API_KEY only: - master prepare_job: stage: prepare image: rust:alpine rules: - if: $CI_COMMIT_TAG script: - echo "running release_job" - apk add musl-dev - cargo build --release artifacts: paths: - target/release/hyper - target/release/actix release_job: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest rules: - if: $CI_COMMIT_TAG script: - echo "running release_job for $TAG" needs: - job: prepare_job artifacts: true release: name: 'Release $CI_COMMIT_TAG' description: 'New macroblog version' tag_name: '$CI_COMMIT_TAG' ref: '$CI_COMMIT_TAG'