default: image: node:12 stages: - fetch - deps - check - build - test - deploy submodule_fetch: stage: fetch script: - chmod 600 .drawing-app-deploy.rsa - git submodule sync --recursive - GIT_SSH_COMMAND='ssh -i .drawing-app-deploy.rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' git submodule update --init artifacts: paths: - src/liowebrtc - src/rtcpeerconnection - src/signalbuddy - src/yjs npm_install_prod: stage: deps dependencies: - submodule_fetch script: - npm ci --only=prod artifacts: paths: - node_modules - src/liowebrtc - src/rtcpeerconnection - src/signalbuddy - src/yjs npm_install: stage: deps dependencies: - submodule_fetch script: - npm ci artifacts: paths: - node_modules - src/liowebrtc - src/rtcpeerconnection - src/signalbuddy - src/yjs format_check: stage: check dependencies: - npm_install script: - npm run format-check lint: stage: check dependencies: - npm_install script: - npm run lint build: stage: build dependencies: - npm_install script: - npm run build artifacts: paths: - public/ test: stage: test dependencies: - npm_install script: - npm test deploy: stage: deploy dependencies: - npm_install_prod - build only: - master script: - apt-get update -qq && apt-get install -qq zip - zip -r application.zip * - curl -X POST -u "$DEPLOYMENT_USERNAME:$DEPLOYMENT_PASSWORD" $DEPLOYMENT_ENDPOINT -T application.zip