image: node:latest stages: - test - build - package test_backend: stage: test script: - npm ci - npm run lint test_frontend: stage: test script: - cd frontend - npm ci - npm run lint build_backend: stage: build needs: - job: test_backend artifacts: false script: - npm ci - npm webpack artifacts: paths: - dist/ expire_in: 1h build_frontend: stage: build needs: - job: test_frontend artifacts: false script: - cd frontend - npm ci - npm run lint artifacts: paths: - frontend/dist/ expire_in: 1h package_server: stage: package needs: - job: build_backend artifacts: true - job: build_frontend artifacts: true script: - TMP=$(mktemp -d) - mv dist/* "$TMP" - mkdir "$TMP/frontend" - mv frontend/dist/* "$TMP/frontend" - rm -r * - mv "$TMP/*" . artifacts: paths: - .