overleaf/services/web/cloudbuild-storybook.yaml

71 lines
1.8 KiB
YAML
Raw Normal View History

steps:
- id: npm_ci
name: "node:20.18.0"
entrypoint: /bin/bash
args:
- '-c'
- 'bin/npm_install_subset . libraries/* services/web'
- id: build-storybook
name: 'node:20.18.0'
env:
- 'BRANCH_NAME=$BRANCH_NAME'
- 'BUILD_ID=$BUILD_ID'
script: |
#!/bin/bash
set -e
make -C services/web BRANCH_NAME="${BRANCH_NAME:-$BUILD_ID}" build_storybook
- id: deploy-storybook
name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
env:
- 'BRANCH_NAME=$BRANCH_NAME'
- 'BUILD_ID=$BUILD_ID'
- 'BUCKET=gs://overleaf-dev-storybook'
dir: services/web
script: |
#!/bin/bash
: ${BRANCH_NAME:=$BUILD_ID}
[[ "$BRANCH_NAME" ]] || {
echo 1>&2 "ERROR: BRANCH_NAME not set"
exit 2
}
gsutil -m copy -r storybook-output/* "${BUCKET}/"
waitFor:
- build-storybook
- id: read-storybook-bucket
name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
dir: services/web
env:
- 'BUCKET=gs://overleaf-dev-storybook'
script: |
#!/bin/bash
set -ex
gsutil ls "${BUCKET}/" \
| sed -E "s@^${BUCKET}/([^/]+)/@\1@" \
> storybook-bucket-listing.txt
waitFor:
- deploy-storybook
- id: create-storybook-index
name: 'node:20.18.0'
dir: services/web
env:
- 'BRANCH_NAME=$BRANCH_NAME'
script: |
#!/bin/bash
set -ex
LIST=$(tr '\n' , < storybook-bucket-listing.txt)
m4 -DLIST="$LIST" -DBRANCH_NAME="$BRANCH_NAME" cloudbuild-storybook-index.html.m4 > storybook-index.html
waitFor:
- read-storybook-bucket
- id: update-storybook-index
name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
dir: services/web
entrypoint: 'gsutil'
args: [ "copy", "storybook-index.html", "gs://overleaf-dev-storybook/index.html" ]
waitFor:
- create-storybook-index