-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconfig.yaml
238 lines (231 loc) · 7.17 KB
/
config.yaml
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
name: TYPO3 CMS project
steps:
- type: collectBuildInstructions
- type: processSourceFiles
options:
fileConditions:
# Deployer
- path: '.deployment/*'
if: 'features["deployer"]'
- path: 'deploy.php.twig'
if: 'features["deployer"]'
# PHPStan
- path: 'phpstan.neon'
if: 'features["phpstan"]'
# Rector
- path: 'rector.php.twig'
if: 'features["rector"]'
- type: generateBuildArtifact
- type: mirrorProcessedFiles
- type: showNextSteps
options:
templateFile: templates/next-steps.html.twig
properties:
# Project
- identifier: project
name: Project
properties:
- identifier: name
name: Project name
type: staticValue
validators:
- type: notEmpty
- identifier: vendor
name: Vendor name
type: staticValue
validators:
- type: notEmpty
- identifier: package_name
name: Composer package name
type: staticValue
defaultValue: "{{ project.vendor|slugify }}/{{ project.name|slugify }}"
validators:
- type: notEmpty
- identifier: url
name: Website URL
type: staticValue
validators:
- type: notEmpty
- type: url
# Packages
- identifier: packages
name: Packages
properties:
- identifier: typo3_cms
name: TYPO3 version
type: select
options:
- value: 12.4
- value: 11.5
validators:
- type: notEmpty
- identifier: typo3_testing_framework
name: TYPO3 testing framework version
type: dynamicSelect
options:
- value: '^8.0' # renovate: datasource=packagist depName=typo3/testing-framework
if: 'packages["typo3_cms"] == "12.4"'
- value: '^7.0'
if: 'packages["typo3_cms"] == "11.5"'
- identifier: typo3_console
name: TYPO3 console version
type: dynamicSelect
options:
- value: '^8.0' # renovate: datasource=packagist depName=helhum/typo3-console
if: 'packages["typo3_cms"] == "12.4"'
- value: '^7.0.3'
if: 'packages["typo3_cms"] == "11.5"'
- identifier: typo3_console_binary
name: TYPO3 console binary
type: dynamicSelect
options:
- value: 'typo3'
if: 'packages["typo3_cms"] == "12.4"'
- value: 'typo3cms'
if: 'packages["typo3_cms"] == "11.5"'
- identifier: php
name: PHP version
type: select
options:
- value: '8.4'
- value: '8.3'
- value: '8.2'
- value: '8.1'
validators:
- type: notEmpty
- identifier: editorconfig_cli
name: Editorconfig CLI version
type: dynamicSelect
options:
- value: '^2.0' # renovate: datasource=packagist depName=armin/editorconfig-cli
if: 'packages["php"] != "8.1"'
- value: '^1.5'
if: 'packages["php"] == "8.1"'
- identifier: typo3_system_extensions
name: Do you need additional TYPO3 system extensions?
type: select
multiple: true
options:
- value: 'typo3/cms-felogin'
- value: 'typo3/cms-filemetadata'
- value: 'typo3/cms-indexed-search'
- value: 'typo3/cms-linkvalidator'
- value: 'typo3/cms-reactions'
if: 'packages["typo3_cms"] == "12.4"'
- value: 'typo3/cms-sys-note'
- value: 'typo3/cms-t3editor'
- value: 'typo3/cms-webhooks'
if: 'packages["typo3_cms"] == "12.4"'
- value: 'typo3/cms-workspaces'
# Features
- identifier: features
name: Additional features
properties:
- identifier: phpstan
name: Should <comment>PHPStan</comment> be integrated?
type: question
- identifier: rector
name: Should <comment>Rector</comment> be integrated?
type: question
- identifier: deployer
name: Do you want a basic <comment>Deployer</comment> deployment configuration?
type: question
# Deployer
- identifier: deployer
name: Deployer configuration
if: 'features["deployer"]'
properties:
- identifier: hosts.production.hostname
name: 'Production: Hostname or IP address'
type: staticValue
defaultValue: "{{ resolve_ip(project.url) }}"
validators:
- type: notEmpty
- identifier: hosts.production.remote_user
name: 'Production: Remote user'
type: staticValue
validators:
- type: notEmpty
- identifier: hosts.staging.confirmation
name: Do you want to add a <comment>staging server</comment>?
type: question
defaultValue: true
- identifier: hosts.staging.hostname
name: 'Staging: Hostname or IP address'
if: 'deployer["hosts"]["staging"]["confirmation"]'
type: staticValue
validators:
- type: notEmpty
- identifier: hosts.staging.remote_user
name: 'Staging: Remote user'
if: 'deployer["hosts"]["staging"]["confirmation"]'
type: staticValue
defaultValue: "{{ deployer.hosts.production.remote_user }}"
validators:
- type: notEmpty
- identifier: hosts.dev.confirmation
name: Do you want to add a <comment>dev server</comment>?
type: question
defaultValue: true
- identifier: hosts.dev.hostname
name: 'Dev: Hostname or IP address'
if: 'deployer["hosts"]["dev"]["confirmation"]'
type: staticValue
validators:
- type: notEmpty
- identifier: hosts.dev.remote_user
name: 'Dev: Remote user'
if: 'deployer["hosts"]["dev"]["confirmation"]'
type: staticValue
defaultValue: "{{ deployer.hosts.production.remote_user }}"
validators:
- type: notEmpty
# DDEV
- identifier: ddev
name: DDEV configuration
properties:
- identifier: name
name: Name
type: staticValue
defaultValue: "{{ project.name|slugify }}"
validators:
- type: notEmpty
- identifier: webserver_type
name: Webserver type
type: select
options:
- value: Apache
- value: Nginx
validators:
- type: notEmpty
- identifier: db_driver
name: Database driver
type: select
options:
- value: MySQL
- value: MariaDB
validators:
- type: notEmpty
- identifier: db_version
name: Database version
type: staticValue
defaultValue: "{% if ddev.db_driver == \"MySQL\" %}8.0{% else %}10.4{% endif %}"
validators:
- type: notEmpty
# Author
- identifier: author
name: About you
properties:
- identifier: name
name: Your name
type: staticValue
defaultValue: '{{ get_default_author_name() }}'
validators:
- type: notEmpty
- identifier: email
name: Your e-mail address
type: staticValue
defaultValue: '{{ get_default_author_email() }}'
validators:
- type: notEmpty
- type: email