Files
openstapps/.gitlab-ci.yml
2023-06-29 16:01:42 +02:00

148 lines
3.7 KiB
YAML

image: registry.gitlab.com/openstapps/projectmanagement/builder:v18
include: '/backend/backend/.gitlab-ci.yml'
#variables:
# GIT_CLEAN_FLAGS: -ffdx -e www/
default:
tags:
- performance
interruptible: true
before_script:
- echo TURBO_API=$TURBO_API >> .env.local
- echo TURBO_TOKEN=$TURBO_TOKEN >> .env.local
- echo TURBO_TEAM=$TURBO_TEAM >> .env.local
- pnpm config set store-dir .pnpm-store
cache: &pnpm_cache
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store/
policy: pull
stages:
- build
- images
- test
- deploy
build:
stage: build
script:
- pnpm config set recursive-install false
- pnpm i --prefer-offline
- pnpm build:full:skip || pnpm i -r --prefer-offline
- pnpm build:full
- mv frontend/app/www www
artifacts:
paths:
- www
- ./**/.turbo/
- ./backend/backend/lib
- ./backend/proxy/lib
- ./configuration/projectmanagement/lib
- ./examples/minimal-connector/lib
- ./examples/minimal-plugin/lib
- ./packages/api-cli/lib
- ./packages/api-plugin/lib
- ./packages/api/lib
- ./packages/collection-utils/lib
- ./packages/core-tools/lib
- ./packages/core/lib
- ./packages/easy-ast/lib
- ./packages/es-mapping-generator/lib
- ./packages/gitlab-api/lib
- ./packages/logger/lib
cache:
<<: *pnpm_cache
policy: pull-push
unit:
stage: test
script:
- pnpm config set recursive-install false
- pnpm i --prefer-offline
- pnpm test:skip || pnpm i -r --prefer-offline
- pnpm test
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
when: always
paths:
- report-junit.xml
- coverage.xml
reports:
junit:
- report-junit.xml
coverage_report:
coverage_format: cobertura
path: coverage.xml
image:database:
stage: images
image:
name: gcr.io/kaniko-project/executor:v1.9.0-debug
entrypoint: [""]
before_script: []
cache: []
script:
- /kaniko/executor
--context "${CI_PROJECT_DIR}/backend/database"
--dockerfile "${CI_PROJECT_DIR}/backend/database/Dockerfile"
--destination "${CI_REGISTRY_IMAGE}/database:${CI_COMMIT_BRANCH}"
only:
refs:
- branches
changes:
- backend/database/**/*
# TODO!!
# integration:
# stage: test
# variables:
# DOCKER_DRIVER: overlay2
# services:
# - docker:dind
# script:
# - pnpm install
# - pnpm run test:integration
# tags:
# - gitlab-org-docker
review:
stage: deploy
dependencies:
- build
script:
# TODO: - .gitlab/ci/enableGitlabReviewToolbar.sh www/index.html "$CI_PROJECT_ID" "$CI_OPEN_MERGE_REQUESTS"
- cp www/index.html www/200.html
- pnpm dlx surge -p ./www -d https://$CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh/
environment:
name: review/$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_NAME
url: https://$CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh/
on_stop: stop_review
rules:
- if: ($CI_COMMIT_REF_NAME != "develop" && $CI_COMMIT_REF_NAME != "main" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train" && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web"))
stop_review:
stage: deploy
script:
- pnpm dlx surge teardown $CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh
when: manual
environment:
name: review/$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_NAME
action: stop
rules:
- if: ($CI_COMMIT_REF_NAME != "develop" && $CI_COMMIT_REF_NAME != "main" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train" && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web"))
# TODO!!
# pages:docs:
# stage: deploy
# script:
# - pnpm install
# - pnpm run docs
# - mv docs public
# artifacts:
# paths:
# - public