mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-08 22:42:54 +00:00
refactor: app deployment
This commit is contained in:
118
.gitlab-ci.yml
118
.gitlab-ci.yml
@@ -1,59 +1,101 @@
|
||||
image: node:18-buster
|
||||
|
||||
before_script:
|
||||
- echo TURBO_API=$TURBO_API >> .env.local
|
||||
- echo TURBO_TOKEN=$TURBO_TOKEN >> .env.local
|
||||
- echo TURBO_TEAM=$TURBO_TEAM >> .env.local
|
||||
- corepack enable
|
||||
- corepack prepare pnpm@latest-8 --activate
|
||||
- pnpm config set store-dir .pnpm-store
|
||||
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- pnpm-lock.yaml
|
||||
paths:
|
||||
- .pnpm-store
|
||||
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
|
||||
- lint
|
||||
- test
|
||||
- docs
|
||||
- deploy
|
||||
|
||||
build:
|
||||
stage: build
|
||||
interruptible: true
|
||||
script:
|
||||
- pnpm install
|
||||
- pnpm build
|
||||
- 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
|
||||
|
||||
lint:
|
||||
stage: lint
|
||||
script:
|
||||
- pnpm install
|
||||
- pnpm build
|
||||
- pnpm run syncpack
|
||||
- pnpm lint
|
||||
- pnpm format
|
||||
|
||||
test:
|
||||
unit:
|
||||
stage: test
|
||||
interruptible: true
|
||||
script:
|
||||
- pnpm install
|
||||
- pnpm build
|
||||
- pnpm test
|
||||
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
|
||||
artifacts:
|
||||
reports:
|
||||
coverage_report:
|
||||
coverage_format: cobertura
|
||||
path: coverage.xml
|
||||
|
||||
pages:
|
||||
stage: docs
|
||||
# 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:
|
||||
- pnpm install
|
||||
- pnpm run docs
|
||||
- mv docs public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user