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

102 lines
2.5 KiB
YAML

default:
image: registry.gitlab.com/openstapps/projectmanagement/builder:v18
tags:
- performance
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:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store
stages:
- build
- test
- deploy
build:
stage: build
interruptible: true
script:
- pnpm install
- pnpm build:full
- mv frontend/app/www www
artifacts:
paths:
- www
# rules:
# - if: $CI_COMMIT_BRANCH == "develop"
# when: never
# - if: $CI_COMMIT_BRANCH == "master"
# when: never
# - when: always
unit:
stage: test
interruptible: true
script:
- pnpm install
- pnpm test
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
# TODO!!
# integration:
# stage: test
# interruptible: true
# 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