2024-01-22 15:57:44 +00:00
|
|
|
image: node:lts-hydrogen
|
2023-01-26 09:36:47 +00:00
|
|
|
|
|
|
|
stages:
|
2023-03-30 08:47:45 +00:00
|
|
|
- test
|
2023-01-26 09:36:47 +00:00
|
|
|
- build
|
|
|
|
|
2023-11-06 07:57:08 +00:00
|
|
|
include:
|
|
|
|
- template: Security/SAST.gitlab-ci.yml
|
|
|
|
- template: Security/Secret-Detection.gitlab-ci.yml
|
|
|
|
|
2023-03-30 08:47:45 +00:00
|
|
|
##############
|
|
|
|
# TEST STAGE #
|
|
|
|
##############
|
|
|
|
|
|
|
|
test:
|
|
|
|
stage: test
|
|
|
|
variables:
|
|
|
|
DOCKER_TLS_CERTDIR: ''
|
|
|
|
script:
|
|
|
|
- npm install
|
|
|
|
- npm run lint:check
|
|
|
|
- npm run pretty:check
|
|
|
|
rules:
|
|
|
|
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_MESSAGE =~ /--check/ || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
|
|
|
when: always
|
|
|
|
|
2023-01-26 09:36:47 +00:00
|
|
|
###############
|
|
|
|
# BUILD STAGE #
|
|
|
|
###############
|
|
|
|
|
|
|
|
build:
|
|
|
|
stage: build
|
|
|
|
image: docker:20.10.22
|
|
|
|
variables:
|
2023-03-30 08:47:45 +00:00
|
|
|
DOCKER_TLS_CERTDIR: ''
|
2023-01-26 09:36:47 +00:00
|
|
|
services:
|
|
|
|
- docker:dind
|
|
|
|
before_script:
|
2023-04-05 10:17:57 +00:00
|
|
|
- echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
2023-01-26 09:36:47 +00:00
|
|
|
script:
|
2023-04-05 10:17:57 +00:00
|
|
|
- export VERSION=$(docker run --rm -v "$PWD":/usr/src/app:ro -w /usr/src/app node:slim node -p "require('./package.json').version")
|
|
|
|
- docker pull $CI_REGISTRY_IMAGE:latest || true
|
|
|
|
- >
|
|
|
|
docker build
|
|
|
|
--pull
|
|
|
|
--cache-from $CI_REGISTRY_IMAGE:latest
|
|
|
|
--tag $CI_REGISTRY_IMAGE:$VERSION
|
|
|
|
--tag $CI_REGISTRY_IMAGE:latest
|
|
|
|
.
|
|
|
|
- docker push $CI_REGISTRY_IMAGE:$VERSION
|
|
|
|
- docker push $CI_REGISTRY_IMAGE:latest
|
2023-01-26 09:36:47 +00:00
|
|
|
only:
|
|
|
|
- main
|