mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-03 12:02:53 +00:00
199 lines
4.8 KiB
YAML
199 lines
4.8 KiB
YAML
image: registry.gitlab.com/openstapps/projectmanagement/node
|
|
|
|
stages:
|
|
- build
|
|
- test
|
|
- audit
|
|
- publish
|
|
- deploy
|
|
|
|
build:
|
|
stage: build
|
|
script:
|
|
- npm install
|
|
- npm run build
|
|
artifacts:
|
|
untracked: true
|
|
paths:
|
|
- node_modules/
|
|
|
|
unit:
|
|
stage: test
|
|
dependencies:
|
|
- build
|
|
script:
|
|
- npm run test-unit
|
|
|
|
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
|
|
allow_failure: true
|
|
except:
|
|
- schedules
|
|
|
|
pages:
|
|
stage: deploy
|
|
script:
|
|
- npm run documentation
|
|
- mv docs/openapi public
|
|
only:
|
|
- master
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
|
|
scheduled-audit:
|
|
stage: audit
|
|
script:
|
|
- npm audit --audit-level=high
|
|
only:
|
|
- schedules
|
|
|
|
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
|
|
artifacts:
|
|
untracked: true
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
services:
|
|
- docker:dind
|
|
script:
|
|
- export REGISTRY_BRANCH=$(.gitlab/ci/getRegistryBranch.sh "$CI_JOB_NAME")
|
|
- export VERSION=$(.gitlab/ci/getRegistryTag.sh "$CI_COMMIT_REF_NAME")
|
|
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
|
|
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE/$REGISTRY_BRANCH
|
|
- 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_VERSION
|
|
- docker push $IMAGETAG_CORE_VERSION
|
|
- .gitlab/ci/pushAsLatestVersion.sh "$CI_COMMIT_REF_NAME" "$IMAGETAG_BASE"
|
|
only:
|
|
- /(^v[0-9]+\.[0-9]+\.[0-9]+$|^master$|^develop$)/
|
|
tags:
|
|
- gitlab-org-docker
|
|
|
|
.publish_template_manual: &publish_template_manual
|
|
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
|
stage: publish
|
|
dependencies:
|
|
- build
|
|
artifacts:
|
|
untracked: true
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
services:
|
|
- docker:dind
|
|
script:
|
|
- export REGISTRY_BRANCH=$(.gitlab/ci/getRegistryBranch.sh "$CI_JOB_NAME")
|
|
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
|
|
- docker build -t $CI_REGISTRY_IMAGE/$REGISTRY_BRANCH/$CI_COMMIT_REF_NAME:latest .
|
|
- docker push $CI_REGISTRY_IMAGE/$REGISTRY_BRANCH/$CI_COMMIT_REF_NAME:latest
|
|
except:
|
|
- /(^v[0-9]+\.[0-9]+\.[0-9]+$|^master$|^develop$)/
|
|
only:
|
|
- branches
|
|
when: manual
|
|
tags:
|
|
- gitlab-org-docker
|
|
|
|
|
|
# Anchor templates for custom build processes
|
|
.build_template_b-tu: &build_template_b-tu
|
|
# before_script:
|
|
# - npm install "@stapps/b-tu-feedback@0.13.1"
|
|
# - npm install "@stapps/b-tu-tickets@0.13.1"
|
|
# - npm install "@stapps/b-tu-isbn-availability@0.13.1"
|
|
tags:
|
|
- gitlab-org-docker
|
|
|
|
.build_template_f-u: &build_template_f-u
|
|
# before_script:
|
|
# - npm install "git+ssh://git@gitlab.tubit.tu-berlin.de:stapps-f-u/feedback.git#1.0.0"
|
|
# - npm install "git+ssh://git@gitlab.tubit.tu-berlin.de:stapps-f-u/dish-feedback.git#1.0.0"
|
|
tags:
|
|
- gitlab-org-docker
|
|
|
|
|
|
# Jobs joining anchor templates with automatic publishing behaviour
|
|
# ! The jobname must end with ":" followed by the name for the registry branch
|
|
publish:default:
|
|
<<: *publish_template_auto
|
|
|
|
publish:ab-fh:
|
|
<<: *publish_template_auto
|
|
|
|
publish:b-tu:
|
|
<<: *publish_template_auto
|
|
<<: *build_template_b-tu
|
|
|
|
publish:f-u:
|
|
<<: *publish_template_auto
|
|
<<: *build_template_f-u
|
|
|
|
publish:gi-fh:
|
|
<<: *publish_template_auto
|
|
|
|
publish:gi-u:
|
|
<<: *publish_template_auto
|
|
|
|
publish:ks-ug:
|
|
<<: *publish_template_auto
|
|
|
|
# Jobs joining anchor templates with manual publishing behaviour
|
|
custom:default:
|
|
<<: *publish_template_manual
|
|
|
|
custom:ab-fh:
|
|
<<: *publish_template_manual
|
|
|
|
custom:b-tu:
|
|
<<: *publish_template_manual
|
|
<<: *build_template_b-tu
|
|
|
|
custom:f-u:
|
|
<<: *publish_template_manual
|
|
<<: *build_template_f-u
|
|
|
|
custom:gi-fh:
|
|
<<: *publish_template_manual
|
|
|
|
custom:gi-u:
|
|
<<: *publish_template_manual
|
|
|
|
custom:ks-ug:
|
|
<<: *publish_template_manual
|