From e4d5f8a8d2ee5eb95d0979a33ea2635a24b9215a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr>
Date: Wed, 25 Jul 2018 11:47:59 +0200
Subject: [PATCH] CI: n'installe qu'une seule fois les vendors.

---
 .gitlab-ci.yml | 42 ++++++++++++++++++++++++++++++++----------
 1 file changed, 32 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c9702bc2..cab890e9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,35 +1,56 @@
+stages:
+  - without-vendors
+  - with-vendors
 
-.defaults: &defaults
+.without-vendors: &without-vendors
   tags: [ docker ]
+  stage: without-vendors
   image: isdevtools.irstea.fr/poleis/php-analysis:7.1
+  dependencies: []
 
 phploc:
-  <<: *defaults
+  <<: *without-vendors
   script: phploc src tests
 
 lint:
-  <<: *defaults
+  <<: *without-vendors
   script:
     - parallel-lint -j $(nproc) src tests
     - twig-lint lint src
     - yaml-lint src
 
 php-cs-fixer:
-  <<: *defaults
+  <<: *without-vendors
   script: php-cs-fixer fix --dry-run --verbose
 
 phpcpd:
-  <<: *defaults
+  <<: *without-vendors
   script: phpcpd --fuzzy src tests
 
-.with-vendors: &with-vendors
-  <<: *defaults
-  before_script:
-    - composer install --prefer-dist --no-progress --no-suggest
+install-vendors:
+  <<: *without-vendors
+  image: isdevtools.irstea.fr/poleis/php-apache2:stretch-7.1
+  variables:
+    S6_TARGET: none
+    COMPOSER_NO_INTERACTION: "1"
+  script:
+    - phpenmod iconv
+    - composer validate
+    - composer install -n --prefer-dist --no-suggest --no-progress --no-scripts --ignore-platform-reqs
   cache:
-    key: "$CI_COMMIT_REF_NAME"
+    key: "$CI_COMMIT_REF_NAME-composer-cache"
     paths:
       - /composer/cache
+  artifacts:
+    name: vendors
+    paths:
+      - vendor
+    expire_in: "1 day"
+
+.with-vendors: &with-vendors
+  <<: *without-vendors
+  stage: with-vendors
+  dependencies: [ install-vendors ]
 
 phpunit:
   <<: *with-vendors
@@ -42,3 +63,4 @@ composer-require-checker:
 phpmd:
   <<: *with-vendors
   script: phpmd src,tests text ./phpmd-ruleset.xml --suffixes=php
+
-- 
GitLab