-
Notifications
You must be signed in to change notification settings - Fork 1k
/
.gitlab-ci.yml
82 lines (77 loc) · 2.43 KB
/
.gitlab-ci.yml
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
stages:
# linter and static analysis
- lint
# php and js unit tests
- unit
# cypress E2E tests
- E2E
# quarantined tests
- quarantine
# downstream pipelines trigger by this pipeline
- downstream
# create manyrepos
- split
# deploy artifacts build in the `build` stage
- deploy
# visual testing (not in use at the moment)
- visual
workflow:
rules:
# do not run on push, except on protected branches
- if: '$CI_PIPELINE_SOURCE != "push" || ($CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_REF_PROTECTED == "true")'
default:
tags:
- shopware-multi-arch
include:
# include library files
- local: .gitlab/lib/rules.yml
- local: .gitlab/lib/datadog.yml
- local: .gitlab/lib/scripts.yml
# defines basic stuff and base templates
- local: .gitlab/base.yml
# put your jobs into the matching stage file you want it to run
- local: .gitlab/stages/*.yml
#############################################################################
# Templates - start with one of these and put it in the matching stage file #
#############################################################################
# default template for jobs which should run on each MR/Pipeline
#.template-for-normal-jobs:
# extends: .base
# stage: lint
# script:
# # do your stuff here
# - env
#
#.template-for-normal-jobs-with-custom-rules:
# extends: .base
# stage: lint
# rules:
# - !reference [.rules, skip]
# - !reference [.rules, run]
# - changes:
# - '*.php' # only run if any .php files has changed or if not in MR context (scheduled for example)
# script:
# # do your stuff here
# - env
#
## will only run if not in an merge request context or in merge trains
#.template-for-long-running-jobs:
# extends: .long-running
# stage: unit
# script:
# - env
# - sleep 60
#
## will only run if not in an merge request context or in merge trains and the changes matches
#.template-for-long-running-jobs-with-custom-rules:
# extends: .long-running
# stage: unit
# rules:
# - !reference [.rules, skip]
# - !reference [.rules, run]
# - if: !reference [.rules, long-running, if]
# changes:
# - '*.php' # only run if any .php files has changed or if not in MR context (scheduled for example)
# script:
# - env
# - sleep 60