Use default apt component for CI
[leap_platform.git] / .gitlab-ci.yml
1 image: 0xacab.org:4567/leap/docker/ruby:latest
2
3 # This is for caching the gems not only between the stages, but also persistent
4 # on the gitlab-runner so we don't need to install from scratch on every pipeline
5 cache:
6   key: "$CI_BUILD_REF_NAME"
7   untracked: true
8   paths:
9     - tests/platform-ci/vendor/
10
11 before_script:
12   - cd tests/platform-ci
13
14 stages:
15   - setup
16   - syntax
17   - deploy
18
19 setup:
20   stage: setup
21   script:
22     - ./setup.sh
23
24 lint:
25   stage: syntax
26   script:
27     - su -c '/usr/local/bin/bundle exec rake lint' cirunner
28
29 syntax:
30   stage: syntax
31   script:
32     - su -c '/usr/local/bin/bundle exec rake syntax' cirunner
33
34 validate:
35   stage: syntax
36   script:
37     - su -c '/usr/local/bin/bundle exec rake validate' cirunner
38
39 templates:
40   stage: syntax
41   script:
42     - su -c '/usr/local/bin/bundle exec rake templates' cirunner
43
44 catalog:
45   stage: syntax
46   script:
47     - su -c '/usr/local/bin/bundle exec rake catalog' cirunner
48
49 #rspec:
50 #  stage: rspec
51 #  script:
52 #    - /usr/local/bin/bundle exec rake spec
53
54 # The deploy_test job is run on any merge request. This is used to ensure that
55 # the merge request will deploy and test properly. It is not run when the merge
56 # request is accepted into master, instead the 'latest' job below is run
57 # instead.
58 deploy_test:
59   stage: deploy
60   except:
61     - master
62   script:
63     - su -c '/usr/bin/unbuffer /bin/bash -o pipefail ./ci-build.sh | /usr/bin/ts' cirunner
64
65 # Latest job will only run on the master branch, which means all merge requests
66 # that are created from branches don't get to deploy to the latest-ci server.
67 # When a merge request is merged, then the latest job will deploy the code to
68 # the latest provider, and the deployment will be recorded in an environment
69 # named 'latest'
70 ci.leap.se:
71   stage: deploy
72   environment:
73     name: staging
74   only:
75     - master@leap/platform
76   script:
77     - su -c '/usr/bin/unbuffer /bin/bash -o pipefail ./ci-build.sh | /usr/bin/ts' cirunner
78
79 demo.bitmask.net:
80   stage: deploy
81   environment:
82     name: production/demo/vpn
83   only:
84     - master
85   when: manual
86   script:
87     - su -c '/usr/bin/unbuffer /bin/bash -o pipefail ./ci-build.sh | /usr/bin/ts' cirunner
88
89 mail.bitmask.net:
90   stage: deploy
91   environment:
92     name: production/demo/mail
93   only:
94     - master
95   when: manual
96   script:
97     - su -c '/usr/bin/unbuffer /bin/bash -o pipefail ./ci-build.sh | /usr/bin/ts' cirunner