1stages:
2 - test
3 - production
4 - release_job
5
6test:
7 image: rust:alpine
8 stage: test
9 script:
10 - apk add musl-dev
11 - cargo install cargo2junit
12 - cargo test -- -Z unstable-options --format json --report-time | cargo2junit > results.xml
13 only:
14 - master
15 artifacts:
16 reports:
17 junit: results.xml
18
19production:
20 stage: production
21 image: ruby:latest
22 needs:
23 - test
24 script:
25 - apt-get update -qy
26 - apt-get install -y ruby-dev
27 - gem install dpl
28 - gem install faraday -v 1.8.0
29 - dpl --provider=heroku --app=$HEROKU_APP --api-key=$HEROKU_API_KEY
30 only:
31 - master
32
33release_job:
34 stage: release
35 image: rust:alpine
36 rules:
37 - if: $CI_COMMIT_TAG
38 script:
39 paths:
40 - echo "running release_job"
41 - apk add musl-dev
42 - cargo build --release
43 artifacts:
44 - target/release/hyper
45 - target/release/actix
46 release:
47 name: 'Release $CI_COMMIT_TAG'
48 description: 'New macroblog version'
49 tag_name: '$CI_COMMIT_TAG'
50 ref: '$CI_COMMIT_TAG'