image: 0xacab.org:4567/leap-docker/ruby:latest # This is for caching the gems not only between the stages, but also persistent # on the gitlab-runner so we don't need to install from scratch on every pipeline cache: key: "$CI_BUILD_REF_NAME" untracked: true paths: - tests/platform-ci/vendor/ before_script: - cd tests/platform-ci stages: - setup - syntax - deploy setup: stage: setup script: - ./setup.sh lint: stage: syntax script: - su -c '/usr/local/bin/bundle exec rake lint' cirunner syntax: stage: syntax script: - su -c '/usr/local/bin/bundle exec rake syntax' cirunner validate: stage: syntax script: - su -c '/usr/local/bin/bundle exec rake validate' cirunner templates: stage: syntax script: - su -c '/usr/local/bin/bundle exec rake templates' cirunner catalog: stage: syntax script: - su -c '/usr/local/bin/bundle exec rake catalog' cirunner #rspec: # stage: rspec # script: # - /usr/local/bin/bundle exec rake spec # The deploy_test job is run on any merge request. This is used to ensure that # the merge request will deploy and test properly. It is not run when the merge # request is accepted into master, instead the 'latest' job below is run # instead. deploy_test: stage: deploy except: - master script: - su -c '/usr/bin/unbuffer ./ci-build.sh' cirunner # Latest job will only run on the master branch, which means all merge requests # that are created from branches don't get to deploy to the latest-ci server. # When a merge request is merged, then the latest job will deploy the code to # the latest provider, and the deployment will be recorded in an environment # named 'latest' latest: stage: deploy environment: name: staging only: - master script: - su -c '/usr/bin/unbuffer ./ci-build.sh' cirunner production: stage: deploy environment: name: production only: - master when: manual script: - su -c '/usr/bin/unbuffer ./ci-build.sh' cirunner