11# ###############################################################################
2- # Gitlab CI integration for Drupal 9 .
2+ # Gitlab CI integration for Esante .
33# ###############################################################################
44
55include :
6- - ' /.gitlab/ci/base.yml'
7- - ' /.gitlab/ci/images.yml'
8- - ' /.gitlab/ci/variables.yml'
9- - ' /.gitlab/ci/rules.yml'
10- - ' /.gitlab/ci/deploy.yml'
11- - ' /.gitlab/ci/jira.yml'
6+ - local : .gitlab/ci/jobs/*.yml # Include abstract jobs to be extended
7+ - local : .gitlab/ci/fragments/*.yml # Include any non-job yml fragments
128
139default :
14- image : docksal/cli:php8.1
1510 tags :
1611 - ans-g2-g3
1712
1813# ###############################################################################
1914# Stages.
2015# ###############################################################################
21-
22- # Order is important fo dependency!
16+ # Order is important for dependencies!
2317stages :
2418 - build
19+ - lint
2520 - audits
26- - tests
21+ - packaging
2722 - deploy
28- - jira
29- - release
30- - lint
23+ - external
3124
3225# ###############################################################################
3326# Build job.
3427# ###############################################################################
35-
36- build:site :
37- stage : build
38- needs : []
39- extends :
40- - .node_image
41- - .build_rules
42- before_script :
43- - npm ci
44- script :
45- - ./node_modules/.bin/gulp
46- artifacts :
47- paths :
48- - site
49- - styleguide
50- expire_in : 1 hour
51-
52- # ###############################################################################
53- # Code quality jobs.
54- # ###############################################################################
55-
56- # Sonar
57- # sonar:
58- # extends:
59- # - .sonar
60- # rules:
61- # - !reference [.git_interne, rules]
62- # - !reference [.merge_request, rules]
63-
64- # owasp_dependency_check:
65- # extends:
66- # - .owasp_dependency_check
67-
68- # sonar_full:
69- # stage: audits
70- # extends:
71- # - .sonar
72- # needs: ["owasp_dependency_check"]
73- # rules:
74- # - !reference [.git_interne, rules]
75- # - !reference [.develop, rules]
76- # - !reference [.tags, rules]
28+ site-build :
29+ extends : [ .site:build, .node12-image ]
7730
7831# ###############################################################################
7932# Code linter & Test jobs.
8033# ###############################################################################
81-
82- # css-lint:
83- # stage: tests
84- # needs: []
85- # extends:
86- # - .css-lint
87- # - .to_merge_css
88- # variables:
89- # FOLDER: g_nius
34+ site-lint :
35+ extends : [ .site:lint, .node12-image]
9036
9137# ###############################################################################
92- # Deploy
38+ # Packaging
9339# ###############################################################################
40+ package_generate :
41+ extends : [ .package:generate ]
9442
95- # RUI SANTE
96- # deploy_rui_sante:
97- # stage: deploy
98- # needs: ["composer", "css-build"]
99- # dependencies: ["composer", "css-build"]
100- # extends:
101- # - .sante_variables
102- # - .ssh
103- # - .rui_sante_rules
104- # - .deploy
105- # variables:
106- # GIT_STRATEGY: none
107- # ENV_IP: $RUI_IP
108- # ENV_USER: $RUI_USER
109- # environment:
110- # name: $RUI_NAME
111- # url: $RUI_URL
112-
113-
114- # ###############################################################################
115- # Release
116- # ###############################################################################
117-
118- generate_package :
119- stage : build
120- needs : ["build:site"]
121- dependencies : ["build:site"]
122- extends :
123- - .ressources_variables
124- - .tags_rules
125- script :
126- - |
127- cat <<EOT >> ./version.json
128- {
129- "project": "${CI_PROJECT_NAME}",
130- "build_date": "$(date +"%Y-%m-%d %H:%M:%S %Z")",
131- "deploy_date": "",
132- "version": "${CI_COMMIT_TAG}",
133- "env": "",
134- "machine": "",
135- "job_name": "${CI_JOB_NAME}"
136- }
137- EOT
138- # Fix ownership
139- - sudo chown -R docker:docker .
140- # Build package
141- - |
142- zip -qr ${PACKAGES_NAME} site styleguide version.json \
143- -x \*\*/node_modules/\*
144- artifacts :
145- paths :
146- - $PACKAGES_NAME
147-
148- upload_package :
149- stage : release
150- needs : ["generate_package"]
151- dependencies : ["generate_package"]
152- extends :
153- - .ressources_variables
154- - .tags_rules
155- script :
156- - ' curl -k --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ${PACKAGES_NAME} "${PACKAGE_REGISTRY_URL}${PACKAGES_NAME}"'
157-
158- generate_release :
159- stage : release
160- needs : ["upload_package"]
161- dependencies : ["upload_package"]
162- extends :
163- - .ressources_variables
164- - .tags_rules
165- script :
166- - |
167- curl -k --header 'Content-Type: application/json' \
168- --header "JOB-TOKEN: $CI_JOB_TOKEN" \
169- --data '{ "name": "Release Ressources '$CI_COMMIT_TAG'", "tag_name": "'${CI_COMMIT_TAG}'", "description": "Release '${CI_COMMIT_TAG}'", "assets": { "links": [ { "name": "'${PACKAGES_NAME}'", "url": "'${PACKAGE_REGISTRY_URL}${PACKAGES_NAME}'"} ] } }' \
170- --request POST "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases"
43+ package_upload :
44+ extends : [ .package:upload ]
0 commit comments