Separate CI jobs to 3 stages to allow them to be executed in parallel
authorrinpatch <rinpatch@sdf.org>
Tue, 2 Apr 2019 05:58:09 +0000 (08:58 +0300)
committerrinpatch <rinpatch@sdf.org>
Tue, 2 Apr 2019 05:58:09 +0000 (08:58 +0300)
.gitlab-ci.yml

index dbdf59f6516eb28f9a5fd3a95883884158fbc89d..9d95ff7af800d19e6743c3f6ddf7fa0aff78dc84 100644 (file)
@@ -1,8 +1,5 @@
 image: elixir:1.8.1
 
-services:
-  - name: postgres:9.6.2
-    command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
 
 variables:
   POSTGRES_DB: pleroma_test
@@ -17,56 +14,58 @@ cache:
           - deps
           - _build
 stages:
-  - lint
+  - build
   - test
-  - analysis
-  - docs_build
-  - docs_deploy
+  - deploy
 
 before_script:
   - mix local.hex --force
   - mix local.rebar --force
-  - mix deps.get
-  - mix compile --force
-  - mix ecto.create
-  - mix ecto.migrate
-
-lint:
-  stage: lint
-  script:
-    - mix format --check-formatted
 
-unit-testing:
-  stage: test
+build:
+  stage: build
   script:
-    - mix test --trace --preload-modules
-
-analysis:
-  stage: analysis
-  script:
-    - mix credo --strict --only=warnings,todo,fixme,consistency,readability
+  - mix deps.get --only test
+  - mix compile --force
 
 docs_build:
-  stage: docs_build
-  services:
+  stage: build
   only:
   - master@pleroma/pleroma
   - develop@pleroma/pleroma
   variables:
     MIX_ENV: dev
-  before_script:
-    - mix local.hex --force
-    - mix local.rebar --force
+  script:
     - mix deps.get
     - mix compile
-  script:
     - mix docs
   artifacts:
     paths:
       - priv/static/doc
 
+unit-testing:
+  stage: test
+  services:
+  - name: postgres:9.6.2
+    command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
+  script:
+    - mix ecto.create
+    - mix ecto.migrate
+    - mix test --trace --preload-modules
+
+lint:
+  stage: test
+  script:
+    - mix format --check-formatted
+
+analysis:
+  stage: test
+  script:
+    - mix credo --strict --only=warnings,todo,fixme,consistency,readability
+
+
 docs_deploy:
-  stage: docs_deploy
+  stage: deploy
   image: alpine:3.9
   services:
   only: