ci: Use extends instead of YAML anchors
authorEmmanuele Bassi <ebassi@gnome.org>
Fri, 15 May 2020 12:21:45 +0000 (13:21 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Sat, 16 May 2020 23:30:07 +0000 (00:30 +0100)
The `extends` keyword is more readable than YAML's weird anchor syntax,
and we don't have too many anchors in our job definitions anyway.

.gitlab-ci.yml

index 84a9e0ddca99a2c7656cb84d3054fd65ba59b195..141954326ab280ad3911a09bd8f5f01e85c9b3bd 100644 (file)
@@ -27,29 +27,14 @@ variables:
 
 style-check-diff:
   extends: .only-default
-  image: registry.gitlab.gnome.org/gnome/gtk/fedora:v16
+  image: registry.gitlab.gnome.org/gnome/gtk/fedora:v17
   stage: .pre
   allow_failure: true
   script:
     - .gitlab-ci/run-style-check-diff.sh
 
-fedora-x86_64:
+.build-fedora-default:
   image: registry.gitlab.gnome.org/gnome/gtk/fedora:v17
-  stage: build
-  variables:
-    EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
-  script:
-    - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS}
-            -Dx11-backend=true
-            -Dwayland-backend=true
-            -Dbroadway-backend=true
-            -Dvulkan=yes
-            -Dprofiler=true
-            _build
-    - ninja -C _build
-    - .gitlab-ci/run-tests.sh _build x11
-    - .gitlab-ci/run-tests.sh _build wayland
-    - .gitlab-ci/run-tests.sh _build broadway
   artifacts:
     when: always
     reports:
@@ -67,10 +52,34 @@ fedora-x86_64:
       - "${CI_PROJECT_DIR}/_build/testsuite/css/output/*/*.syscap"
   cache:
     key: "$CI_JOB_NAME"
-    <<: *cache-paths
+    paths:
+      - _ccache/
+      - subprojects/gdk-pixbuf/
+      - subprojects/glib/
+      - subprojects/graphene/
+      - subprojects/libepoxy/
+      - subprojects/pango/
+
+fedora-x86_64:
+  extends: .build-fedora-default
+  stage: build
+  variables:
+    EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
+  script:
+    - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS}
+            -Dx11-backend=true
+            -Dwayland-backend=true
+            -Dbroadway-backend=true
+            -Dvulkan=yes
+            -Dprofiler=true
+            _build
+    - ninja -C _build
+    - .gitlab-ci/run-tests.sh _build x11
+    - .gitlab-ci/run-tests.sh _build wayland
+    - .gitlab-ci/run-tests.sh _build broadway
 
 release-build:
-  image: registry.gitlab.gnome.org/gnome/gtk/fedora:v16
+  extends: .build-fedora-default
   stage: build
   variables:
     EXTRA_MESON_FLAGS: "--buildtype=release"
@@ -83,24 +92,8 @@ release-build:
             _build
     - ninja -C _build
     - .gitlab-ci/run-tests.sh _build x11
-  artifacts:
-    when: always
-    reports:
-      junit:
-        - "${CI_PROJECT_DIR}/_build/report-x11.xml"
-    name: "gtk-${CI_COMMIT_REF_NAME}"
-    paths:
-      - "${CI_PROJECT_DIR}/_build/meson-logs"
-      - "${CI_PROJECT_DIR}/_build/report*.xml"
-      - "${CI_PROJECT_DIR}/_build/report*.html"
-      - "${CI_PROJECT_DIR}/_build/testsuite/reftests/output/*/*.png"
-      - "${CI_PROJECT_DIR}/_build/testsuite/gsk/compare/*/*/*.png"
-      - "${CI_PROJECT_DIR}/_build/testsuite/css/output/*/*.syscap"
-  cache:
-    key: "$CI_JOB_NAME"
-    <<: *cache-paths
 
-.mingw-defaults: &mingw-defaults
+.mingw-defaults:
   stage: build
   tags:
     - win32-ps
@@ -109,15 +102,21 @@ release-build:
     - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
   cache:
     key: "$CI_JOB_NAME"
-    <<: *cache-paths
+    paths:
+      - _ccache/
+      - subprojects/gdk-pixbuf/
+      - subprojects/glib/
+      - subprojects/graphene/
+      - subprojects/libepoxy/
+      - subprojects/pango/
 
 msys2-mingw32:
+  extends: .mingw-defaults
   variables:
     MSYSTEM: "MINGW32"
     CHERE_INVOKING: "yes"
-  <<: *mingw-defaults
 
-.flatpak-defaults: &flatpak-defaults
+.flatpak-defaults:
   image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
   stage: flatpak
   allow_failure: true
@@ -131,45 +130,45 @@ msys2-mingw32:
     - bash -x ./.gitlab-ci/flatpak-build.sh "${APPID}"
 
 # Manual jobs, for branches and MRs
-.flatpak-manual: &flatpak-manual
-  <<: *flatpak-defaults
+.flatpak-manual:
+  extends: .flatpak-defaults
   when: manual
 
 # Only build Flatpak bundles automatically on master
-.flatpak-master: &flatpak-master
-  <<: *flatpak-defaults
+.flatpak-master:
+  extends: .flatpak-defaults
   only:
     - master
 
 flatpak-manual:demo:
+  extends: .flatpak-manual
   variables:
     APPID: org.gtk.Demo4
-  <<: *flatpak-manual
 
 flatpak-master:demo:
+  extends: .flatpak-master
   variables:
     APPID: org.gtk.Demo4
-  <<: *flatpak-master
 
 flatpak-manual:widget-factory:
+  extends: .flatpak-manual
   variables:
     APPID: org.gtk.WidgetFactory4
-  <<: *flatpak-manual
 
 flatpak-master:widget-factory:
+  extends: .flatpak-master
   variables:
     APPID: org.gtk.WidgetFactory4
-  <<: *flatpak-master
 
 flatpak-manual:icon-browser:
+  extends: .flatpak-manual
   variables:
     APPID: org.gtk.IconBrowser4
-  <<: *flatpak-manual
 
 flatpak-master:icon-browser:
+  extends: .flatpak-master
   variables:
     APPID: org.gtk.IconBrowser4
-  <<: *flatpak-master
 
 static-scan:
   image: registry.gitlab.gnome.org/gnome/gtk/fedora:v16