149 lines
4.2 KiB
YAML
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
|