summaryrefslogtreecommitdiff
path: root/.gitlab/test.yml
blob: d5c3d7d3695a7057bd9fb5a82457b71c7b67381b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
size:
  image: docker:stable
  stage: test
  allow_failure: true # temporary until we can shrink the image size.
  services:
    - docker:stable-dind
  tags: [gitlab-org-docker]
  timeout: 3 minutes
  variables:
    GIT_STRATEGY: none
    MAX_SIZE: 2684354560
  script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker pull $TMP_IMAGE
    - docker image ls $TMP_IMAGE
    - export CURRENT_SIZE=$(docker image inspect $TMP_IMAGE --format='{{.Size}}')
    - echo $MAX_SIZE
    - echo $CURRENT_SIZE
    - test "$MAX_SIZE" -gt "$CURRENT_SIZE"

lint:
  stage: test
  image: ruby:alpine
  script:
    - apk add build-base shellcheck
    - bin/setup
    - bin/lint

.rspec:
  stage: test
  script:
    - bash -lc './bin/test $RSPEC_DIR --format RspecJunitFormatter --out rspec.xml'
  variables:
    BUNDLE_JOBS: '2'
    BUNDLE_PATH: 'vendor/bundle'
    GIT_DEPTH: "10"
    GIT_STRATEGY: fetch
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    paths:
      - vendor/bundle
  artifacts:
    paths:
      - coverage/coverage.xml
      - rspec.xml
    reports:
      cobertura: coverage/coverage.xml
      junit: rspec.xml

unit:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/unit

integration-dotnet:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/integration/dotnet

integration-go:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/integration/go

integration-java:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/integration/java

integration-js:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/integration/js

integration-php:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/integration/php

integration-python:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/integration/python

integration-ruby:
  extends: .rspec
  variables:
    RSPEC_DIR: spec/integration/ruby