tibi-docs/.drone.yml

149 lines
4.2 KiB
YAML

kind: pipeline
type: docker
name: default
steps:
- name: yarn install
image: node:18
pull: if-not-exists
environment:
FORCE_COLOR: "true"
commands:
- yarn install
##############################
# Build and deploy docs
##############################
- name: build docs
image: node:18
pull: if-not-exists
environment:
FORCE_COLOR: "true"
commands:
- yarn docpress:build
when:
branch: [master]
event: [push]
- name: deploy docs
image: instrumentisto/rsync-ssh
pull: if-not-exists
environment:
RSYNC_HOST: ftp1.webmakers.de
RSYNC_PORT: 22222
RSYNC_USER: webmakers_tibi_docs_rsync_master
RSYNC_PASS:
from_secret: rsync_master
commands:
- >
rsync -rlcgD --perms -i -u -v --stats --progress
--delete
-e "sshpass -p $${RSYNC_PASS} ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p $${RSYNC_PORT}"
_docpress/
$${RSYNC_USER}@$${RSYNC_HOST}:./
when:
branch: [master]
event: [push]
##############################
# Demo project
##############################
- name: modify config
image: alpine/git
commands:
- sed -i 's#\(sentryEnvironment.*\)".*"#\1"${DRONE_BRANCH}"#g' frontend/src/config.ts
- sed -i 's#//\( sentry\\.init.*\)#\1#g' frontend/src/config.ts
- export $(cat .env | xargs)
- echo "PROJECT_RELEASE=$${RELEASE_PROJECT_SLUG}.r`git rev-list HEAD --count`-`git describe --all --long | sed 's+/+-+'`" >> .env
- export $(cat .env | xargs)
- cat .env
- sed -i 's#\(const release = \).*#\1"'$${PROJECT_RELEASE}'"#g' api/hooks/config-client.js
- name: build
image: node:18
commands:
- yarn build
- name: build ssr
image: node:18
commands:
- yarn build:server
- name: build legacy
image: node:18
commands:
- yarn build:legacy
- name: modify html
image: bash
commands:
- bash scripts/preload-meta.sh frontend/spa.html
- bash scripts/preload-meta.sh frontend/spa.html > frontend/_spa.html
- cp frontend/_spa.html frontend/spa.html
- export stamp=`date +%s`
- echo $$stamp
- sed -i s/__TIMESTAMP__/$$stamp/g frontend/spa.html
#- sed -i s/__TIMESTAMP__/$$stamp/g frontend/serviceworker.js
#- cat frontend/serviceworker.js
- cp frontend/spa.html api/templates/spa.html
- cat frontend/spa.html
# staging
- name: copy api config to staging
image: instrumentisto/rsync-ssh
volumes:
- name: data
path: /data
commands:
- rsync -av api /data/
- mkdir -p /data/frontend/dist
- rsync -av frontend/dist/ /data/frontend/dist/
when:
branch: [dev]
event: [push]
- name: review in staging
image: docker/compose:1.22.0
commands:
- docker-compose -p ${DRONE_BRANCH}-${DRONE_REPO_NAME}-${DRONE_REPO_OWNER} up -d --build --remove-orphans
volumes:
- name: docker
path: /var/run/docker.sock
when:
branch: [dev]
event: [push]
# live
- name: deploy master
image: instrumentisto/rsync-ssh
environment:
RSYNC_USER: ""
RSYNC_PASS:
from_secret: rsync_master
# remove if user and pass is set
failure: ignore
commands:
- apk add --no-cache sshpass curl
- scripts/deploy.sh ftp1.webmakers.de $${RSYNC_USER} $${RSYNC_PASS}
# - curl -X POST "https://www....de/api/ssr?token=TowendQhi&clear=1"
when:
branch: [master]
event: [push]
# - name: upload sourcemaps for glitchtip
# image: node
# environment:
# GLITCHTIP_TOKEN:
# from_secret: glitchtip_token
# commands:
# - yarn upload:sourcemaps
########
volumes:
- name: data
host:
path: /data/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME}/${DRONE_BRANCH}
- name: docker
host:
path: /var/run/docker.sock