diff --git a/common.yml b/common.yml
index a563d4eff3252780d2b1f8a439a72b30cd80c6bd..afbe59c1cf2797cf8aba541c6b849161a4748562 100644
--- a/common.yml
+++ b/common.yml
@@ -34,13 +34,18 @@ variables:
     # Include git submodules
     GIT_SUBMODULE_STRATEGY: recursive
 
-yamllint:
+.yamllint:
   extends: .infrastructure
   rules:
-    # Only run this job in the 'parent' pipeline in the manifest, not again in i
-    # the child pipeline.
+    # Only run this job in the parent pipeline in the manifest, not again in the child
+    # pipeline
     - if: $CI_PIPELINE_SOURCE == "parent_pipeline"
       when: never
-    - if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH_MANIFEST || $CI_PIPELINE_SOURCE == "api"
+    # Usually run this job only on non-master branches, i.e. in merge requests
+    - if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH_MANIFEST
+    # Additionally run this job if pipeline was triggered by the API, which happens e.g.
+    # when no pipeline has run in a merge request, so a full build pipeline is needed on
+    # the master
+    - if: $CI_PIPELINE_SOURCE == "api"
   script:
     - yamllint -c .gitlab-ci/.yamllint.yml .*.yml
diff --git a/manifest-integration.yml b/manifest-integration.yml
index bedee125668b78db4dce0ba34fbd12ab06a05eb2..819d54b8bae30c620e54598f4357db6db1079bcc 100644
--- a/manifest-integration.yml
+++ b/manifest-integration.yml
@@ -1,7 +1,7 @@
 ---
-# ---------------------------------------------------------------------------------------
+# --------------------------------------------------------------------------------------
 # Global
-# ---------------------------------------------------------------------------------------
+# --------------------------------------------------------------------------------------
 include:
   - local: common.yml
 
@@ -40,10 +40,9 @@ workflow:
     - if: $CI_PROJECT_ROOT_NAMESPACE == "seco-ne"
         && $CI_MERGE_REQUEST_SOURCE_PROJECT_ID == $CI_MERGE_REQUEST_PROJECT_ID
 
-# ---------------------------------------------------------------------------------------
-# integrate
-# Create a commit in the manifest to pull this change
-# ---------------------------------------------------------------------------------------
+# --------------------------------------------------------------------------------------
+# Stage: infrastructure
+# --------------------------------------------------------------------------------------
 integrate:
   extends: .infrastructure
   rules:
@@ -80,6 +79,9 @@ integrate:
     paths:
       - manifest_revision
 
+yamllint:
+  extends: .yamllint
+
 # --------------------------------------------------------------------------------------
 # Stage: merge
 # --------------------------------------------------------------------------------------
diff --git a/manifest.yml b/manifest.yml
index 96e62a6a6865338e3576c7a0ab28d7ede77d0a55..2aa68099e62755c280609cbf16021a54815176d8 100644
--- a/manifest.yml
+++ b/manifest.yml
@@ -81,6 +81,9 @@ retrigger:
         ;
       done
 
+# --------------------------------------------------------------------------------------
+# Stage: infrastructure
+# --------------------------------------------------------------------------------------
 generate-build-jobs:
   extends: .infrastructure
   rules:
@@ -112,3 +115,6 @@ trigger-build-jobs:
       - artifact: build-jobs.yml
         job: generate-build-jobs
     strategy: depend
+
+yamllint:
+  extends: .yamllint