default: image: amio/node-chrome stages: - fetch - deps - check - build - test - deploy - benchmark submodule_fetch: stage: fetch script: - chmod 600 .drawing-app-deploy.rsa - git submodule sync --recursive - GIT_SSH_COMMAND='ssh -i '`pwd`'/.drawing-app-deploy.rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' git submodule update --init --recursive artifacts: paths: - src/liowebrtc - src/rtcpeerconnection - src/signalbuddy - src/yjs - src/drawing-crdt/pkg 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/drawing-crdt/pkg npm_install: stage: deps dependencies: - submodule_fetch script: - npm ci artifacts: paths: - node_modules - src/liowebrtc - src/rtcpeerconnection - src/signalbuddy - src/yjs - src/drawing-crdt/pkg 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 - gcc -E -P -traditional-cpp -o /dev/stdout -DFILES_TO_CACHE_LIST=`find public/ -type f "!" -iname service-worker.js -and "!" -name '.*' | cut -c6- | sed 's_._"_' | sed 's/$/",/' | sort | tr -d '\n'` - < public/service-worker.js | npx prettier --parser babel > public/service-worker.js artifacts: paths: - public/ test: stage: test dependencies: - npm_install script: - npm run test 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 benchmark: stage: benchmark dependencies: - npm_install only: - master - rust-wasm-crdt script: - apt-get -y install gnuplot - npm run build:bench - cp __benchmarks__/benchmarks.html public/benchmarks.html - npm run start-bg - npm run benchmarks - npm run plot artifacts: paths: - plots/