default: image: node:12 stages: - deps - check - build - test - deploy node_install: stage: deps script: - npm ci --only=prod artifacts: paths: - node_modules dev_node_install: stage: deps script: - npm ci artifacts: paths: - node_modules check_format: stage: check dependencies: - dev_node_install script: - npx prettier --ignore-path .gitignore --check "**/*.{html,js,json,md}" lint: stage: check dependencies: - dev_node_install script: - npx eslint --ignore-path .gitignore "**/*.js" backend_build: stage: build dependencies: - dev_node_install script: - npm run build artifacts: paths: - public/ backend_test: stage: test dependencies: - dev_node_install script: - npm test deploy: stage: deploy dependencies: - node_install - backend_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