192 lines
5.1 KiB
YAML
192 lines
5.1 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: default
|
|
|
|
workspace:
|
|
path: /drone/workdir
|
|
|
|
steps:
|
|
- name: load dependencies
|
|
image: node
|
|
pull: if-not-exists
|
|
environment:
|
|
FORCE_COLOR: "true"
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
commands:
|
|
- mkdir -p /cache/node_modules
|
|
- mkdir -p /cache/user-cache
|
|
- ln -s /cache/node_modules ./node_modules
|
|
- ln -s /cache/user-cache ~/.cache
|
|
- echo cache=/cache/npm-cache >> .npmrc
|
|
- "echo 'enableGlobalCache: false' >> .yarnrc"
|
|
- 'echo ''cacheFolder: "/cache/yarn-cache"'' >> .yarnrc'
|
|
- 'echo ''yarn-offline-mirror "/cache/npm-packages-offline-cache"'' >> .yarnrc'
|
|
- "echo 'yarn-offline-mirror-pruning: true' >> .yarnrc"
|
|
- cat .yarnrc
|
|
- yarn install --verbose --frozen-lockfile
|
|
|
|
- name: mongo
|
|
image: mongo
|
|
pull: if-not-exists
|
|
detach: true
|
|
|
|
- name: maildev
|
|
image: node
|
|
pull: if-not-exists
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
commands:
|
|
- yarn run maildev --web 80 --smtp 25 -v --hide-extensions=STARTTLS
|
|
detach: true
|
|
|
|
- name: liveserver
|
|
image: node
|
|
pull: if-not-exists
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
commands:
|
|
- yarn run -- live-server --no-browser --port=80 --ignore='*' --entry-file=spa.html --no-css-inject --proxy=/api:http://wmbasic-api:8080/api/v1/_/__NAMESPACE__ dist
|
|
detach: true
|
|
|
|
- name: wmbasic-api
|
|
image: registry.webmakers.de/wmbasic/wmbasic-api
|
|
pull: never
|
|
environment:
|
|
DB_DIAL: mongodb://mongo
|
|
API_PORT: 8080
|
|
MAIL_HOST: maildev:25
|
|
detach: true
|
|
|
|
- name: cypress run
|
|
image: cypress/base
|
|
pull: if-not-exists
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
environment:
|
|
FORCE_COLOR: "true"
|
|
CYPRESS_BASE_URL: http://liveserver
|
|
CYPRESS_CI: "true"
|
|
CYPRESS_mongodbUri: mongodb://mongo
|
|
CYPRESS_wmbasicApiUrl: http://wmbasic-api:8080/api/v1
|
|
CYPRESS_projectApiConfig: /drone/workdir/api/config.yml
|
|
commands:
|
|
- ln -s /cache/user-cache ~/.cache
|
|
- yarn build:instanbul
|
|
- yarn cy:run
|
|
- yarn run nyc report --exclude-after-remap false
|
|
|
|
- name: modify master config
|
|
image: bash
|
|
pull: if-not-exists
|
|
commands:
|
|
- bash scripts/modify-config.sh master __MASTER_URL__
|
|
when:
|
|
branch: [master]
|
|
|
|
- name: modify dev config
|
|
image: bash
|
|
pull: if-not-exists
|
|
commands:
|
|
- bash scripts/modify-config.sh dev __DEV_URL__
|
|
when:
|
|
branch: [dev]
|
|
|
|
- name: build
|
|
image: node
|
|
pull: if-not-exists
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
commands:
|
|
- yarn build
|
|
|
|
- name: build ssr
|
|
image: node
|
|
pull: if-not-exists
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
commands:
|
|
- yarn build:server
|
|
|
|
- name: build legacy
|
|
image: node
|
|
pull: if-not-exists
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
commands:
|
|
- yarn build:legacy
|
|
|
|
- name: modify html
|
|
image: bash
|
|
pull: if-not-exists
|
|
commands:
|
|
- bash scripts/preload-meta.sh public/spa.html
|
|
- bash scripts/preload-meta.sh public/spa.html > dist/spa.html
|
|
- export stamp=`date +%s`
|
|
- echo $$stamp
|
|
- sed -i s/__TIMESTAMP__/$$stamp/g dist/spa.html
|
|
- sed -i s/__TIMESTAMP__/$$stamp/g dist/serviceworker.js
|
|
- cat dist/serviceworker.js
|
|
- cp dist/spa.html api/templates/spa.html
|
|
- cat dist/spa.html
|
|
|
|
- name: deploy master
|
|
image: instrumentisto/rsync-ssh
|
|
pull: if-not-exists
|
|
environment:
|
|
RSYNC_USER: USER_PROJECT_master
|
|
RSYNC_PASS:
|
|
from_secret: rsync_master
|
|
commands:
|
|
- apk add --no-cache sshpass
|
|
- scripts/deploy.sh ftp1.webmakers.de $${RSYNC_USER} $${RSYNC_PASS}
|
|
when:
|
|
branch: [master]
|
|
event: [push]
|
|
|
|
- name: deploy dev
|
|
image: instrumentisto/rsync-ssh
|
|
pull: if-not-exists
|
|
environment:
|
|
RSYNC_USER: USER_PROJECT_dev
|
|
RSYNC_PASS:
|
|
from_secret: rsync_dev
|
|
commands:
|
|
- apk add --no-cache sshpass
|
|
- scripts/deploy.sh ftp1.webmakers.de $${RSYNC_USER} $${RSYNC_PASS}
|
|
when:
|
|
branch: [dev]
|
|
event: [push]
|
|
|
|
- name: prepare notify
|
|
image: cypress/base
|
|
pull: if-not-exists
|
|
commands:
|
|
- find cypress -type f -wholename "cypress/videos/*" -or -wholename "cypress/screenshots/*" | tar -cvf cypress-media.tar -T -
|
|
when:
|
|
status:
|
|
- failure
|
|
|
|
- name: notify
|
|
image: drillster/drone-email
|
|
pull: if-not-exists
|
|
settings:
|
|
from: noreply@ci.gitbase.de
|
|
host: smtp.basehosts.de
|
|
attachment: cypress-media.tar
|
|
when:
|
|
status:
|
|
- failure
|
|
|
|
volumes:
|
|
- name: cache
|
|
host:
|
|
path: /tmp/cache/drone/${DRONE_REPO}
|