diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d1cd29c5d58949f702dca86467eb75664bc29d28..9c3cc8b4bf04377aef0f9b049cd10174aa42e704 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,14 +1,20 @@
 image: pubsweet/pubsweet-test-base
 
-before_script:
-  - yarn
+install:
+  stage: build
+  script: yarn
+  artifacts:
+    expire_in: 1h
+    paths:
+      - node_modules
+      - packages/*/node_modules
+      - packages/components/packages/*/node_modules
 
-test:
-  script:
-    - npm test
-  coverage: '/^All files\s+\|\s+(\d+.\d+)\s\|.*$/'
+lint:style:
+ script: npm run lint:style
 
-lint:
-  script:
-    - npm run lint
+lint:js:
+ script: npm run lint:js
 
+test:
+  script: npm run test