refactor: speed up the pipeline by directly deploying the review app from the build step

This commit is contained in:
2023-06-28 11:37:39 +02:00
parent 6a8b3d2fe2
commit f1bc41c4df
16 changed files with 344 additions and 296 deletions

View File

@@ -15,12 +15,23 @@ include:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
variables:
TURBO_CACHE_BYPASS:
value: ''
options:
- '--force'
- '--no-cache'
- ''
description: Bypass turbo cache
default:
image: registry.gitlab.com/openstapps/projectmanagement/builder:v18
tags:
- performance
interruptible: true
before_script:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- echo TURBO_API=$TURBO_API >> .env.local
- echo TURBO_TOKEN=$TURBO_TOKEN >> .env.local
- echo TURBO_TEAM=$TURBO_TEAM >> .env.local
@@ -37,34 +48,59 @@ stages:
- version
- build
- test
- review
- publish
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
# - pnpm config set recursive-install false
# - pnpm i --prefer-offline
# - pnpm build:full:skip || pnpm i -r --prefer-offline
- pnpm install
- pnpm build:full $TURBO_CACHE_BYPASS
# pretty sure this is deprecated?
# TODO: - .gitlab/ci/enableGitlabReviewToolbar.sh www/index.html "$CI_PROJECT_ID" "$CI_OPEN_MERGE_REQUESTS"
- cp frontend/app/www/index.html frontend/app/www/200.html
- pnpm dlx surge -p frontend/app/www -d https://$CI_PROJECT_NAME-$DEPLOY_ID.surge.sh/
cache:
<<: *pnpm_cache
policy: pull-push
rules:
- when: on_success
environment:
name: review/$DEPLOY_ID
url: https://$CI_PROJECT_NAME-$DEPLOY_ID.surge.sh/
on_stop: stop review
rules: &deploy-rules
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
variables:
DEPLOY_ID: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
- if: $CI_COMMIT_BRANCH == 'main'
variables:
DEPLOY_ID: production
- if: $CI_COMMIT_BRANCH == 'develop'
variables:
DEPLOY_ID: staging
stop review:
stage: build
needs: ['build']
script:
- pnpm dlx surge teardown $CI_PROJECT_NAME-$DEPLOY_ID.surge.sh
environment:
name: review/$DEPLOY_ID
action: stop
when: manual
rules: *deploy-rules
unit:
stage: test
needs: ['build']
script:
- pnpm config set recursive-install false
- pnpm i --prefer-offline
- pnpm test:skip || pnpm i -r --prefer-offline
- pnpm test
# - pnpm config set recursive-install false
# - pnpm i --prefer-offline
# - pnpm test:skip || pnpm i -r --prefer-offline
- pnpm install
- pnpm rb --filter=@openstapps/app
- pnpm test $TURBO_CACHE_BYPASS
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
when: always