default: image: amio/node-chrome 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 - src/tiny-worker 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 - src/tiny-worker npm_install: stage: deps dependencies: - submodule_fetch script: - npm ci artifacts: paths: - node_modules - src/liowebrtc - src/rtcpeerconnection - src/signalbuddy - src/yjs - src/tiny-worker 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 benchmark: stage: test dependencies: - npm install script: - npm test-benchmark chrome_test: stage: test dependencies: - npm_install - build script: - npm run start-bg - npm run test-e2e 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