mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-22 09:32:41 +00:00
refactor: move backend to monorepo
This commit is contained in:
168
backend/.gitlab-ci.yml
Normal file
168
backend/.gitlab-ci.yml
Normal file
@@ -0,0 +1,168 @@
|
||||
image: registry.gitlab.com/openstapps/projectmanagement/node
|
||||
|
||||
default:
|
||||
tags:
|
||||
- performance
|
||||
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
- audit
|
||||
- publish
|
||||
- deploy
|
||||
|
||||
build:
|
||||
stage: build
|
||||
script:
|
||||
- npm ci
|
||||
- npm run build
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
untracked: true
|
||||
paths:
|
||||
- node_modules/
|
||||
|
||||
unit:
|
||||
stage: test
|
||||
dependencies:
|
||||
- build
|
||||
script:
|
||||
- npm run test-unit
|
||||
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
|
||||
artifacts:
|
||||
expire_in: 6 month
|
||||
reports:
|
||||
coverage_report:
|
||||
coverage_format: cobertura
|
||||
path: coverage/cobertura-coverage.xml
|
||||
|
||||
integration:
|
||||
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
||||
stage: test
|
||||
dependencies:
|
||||
- build
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
|
||||
- docker-compose -f integration-test.yml pull && docker-compose -f integration-test.yml up --abort-on-container-exit --exit-code-from apicli
|
||||
tags:
|
||||
- gitlab-org-docker
|
||||
|
||||
audit:
|
||||
stage: audit
|
||||
dependencies:
|
||||
- build
|
||||
script:
|
||||
- npm audit --production
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
script:
|
||||
- npm run documentation
|
||||
- mv docs/openapi public
|
||||
only:
|
||||
- master
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
|
||||
ci:
|
||||
stage: test
|
||||
dependencies:
|
||||
- build
|
||||
script:
|
||||
- .gitlab/ci/testCIScripts.sh
|
||||
|
||||
# Anchor templates for publishing the image in the docker registry
|
||||
# Automatically publishing for versions in tags (eg v1.0.0 as 1.0.0), master and develop
|
||||
# Manual publishing for all other branches
|
||||
.publish_template_auto: &publish_template_auto
|
||||
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
||||
stage: publish
|
||||
dependencies:
|
||||
- build
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- echo "YOU SHOULD OVERRIDE THIS SECTION"
|
||||
- exit 1
|
||||
only:
|
||||
- master
|
||||
tags:
|
||||
- secrecy
|
||||
|
||||
.publish_template_manual: &publish_template_manual
|
||||
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
||||
stage: publish
|
||||
dependencies:
|
||||
- build
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
|
||||
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME
|
||||
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
|
||||
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
|
||||
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
|
||||
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_CORE_VERSION .
|
||||
- docker push $IMAGETAG_BASE
|
||||
except:
|
||||
- /(^v[0-9]+\.[0-9]+\.[0-9]+$|^master$|^develop$)/
|
||||
only:
|
||||
- branches
|
||||
when: manual
|
||||
tags:
|
||||
- secrecy
|
||||
|
||||
.publish_version_template: &publish_version_template
|
||||
script:
|
||||
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
|
||||
- export VERSION=$(echo -n "$CI_BUILD_REF_NAME" | cut -c 2-)
|
||||
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE
|
||||
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
|
||||
- export IMAGETAG_VERSION=$IMAGETAG_BASE:$VERSION
|
||||
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
|
||||
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
|
||||
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_VERSION -t $IMAGETAG_CORE_VERSION .
|
||||
- docker push $IMAGETAG_BASE
|
||||
|
||||
.publish_branch_template: &publish_branch_template
|
||||
script:
|
||||
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
|
||||
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE/$CI_BUILD_REF_NAME
|
||||
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
|
||||
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
|
||||
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
|
||||
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_CORE_VERSION .
|
||||
- docker push $IMAGETAG_BASE
|
||||
|
||||
# Jobs joining anchor templates with automatic publishing behaviour
|
||||
# ! The jobname must end with ":" followed by the name for the registry branch
|
||||
image:version:
|
||||
<<: *publish_template_auto
|
||||
<<: *publish_version_template
|
||||
only:
|
||||
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
|
||||
|
||||
image:master:
|
||||
<<: *publish_template_auto
|
||||
<<: *publish_branch_template
|
||||
only:
|
||||
- master
|
||||
|
||||
image:develop:
|
||||
<<: *publish_template_auto
|
||||
<<: *publish_branch_template
|
||||
only:
|
||||
- develop
|
||||
|
||||
# Jobs joining anchor templates with manual publishing behaviour
|
||||
image:branch:
|
||||
<<: *publish_template_manual
|
||||
Reference in New Issue
Block a user