diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9dee5807..22ecfd71 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,6 +9,8 @@ variables:
   # by default
   FF_KUBERNETES_HONOR_ENTRYPOINT: 1
   FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: 0
+  ACS_TEST: 0
+  ACS_TAG: ""
 
 stages:
   - prep
@@ -67,8 +69,8 @@ stages:
     name: "logs"
     when: always
     paths:
-      - $CI_PROJECT_DIR/work/build/tmp/work*/**/temp/log.do_*.*
-      - $CI_PROJECT_DIR/work/build/tmp/work*/**/testimage/*
+      - $CI_PROJECT_DIR/work/build/tmp*/work*/**/temp/log.do_*.*
+      - $CI_PROJECT_DIR/work/build/tmp*/work*/**/testimage/*
 
 #
 # Prep stage, update repositories once.
@@ -126,6 +128,20 @@ fvp-base:
     matrix:
       - TESTING: testimage
       - FIRMWARE: edk2
+      - SYSTEMREADY_FIRMWARE: arm-systemready-firmware
+
+arm-systemready-ir-acs:
+  extends: .build
+  timeout: 12h
+  parallel:
+    matrix:
+      # arm-systemready-ir-acs must be specified after fvp-base for ordering
+      # purposes for the jobs-to-kas output. It is not enough to just have it
+      # in the job name because fvp-base.yml overwrites the target.
+      - PLATFORM: fvp-base
+        ARM_SYSTEMREADY_IR_ACS: arm-systemready-ir-acs
+  tags:
+    - ${ACS_TAG}
 
 fvps:
   extends: .build
diff --git a/ci/arm-systemready-firmware.yml b/ci/arm-systemready-firmware.yml
new file mode 100644
index 00000000..1854c2ab
--- /dev/null
+++ b/ci/arm-systemready-firmware.yml
@@ -0,0 +1,4 @@
+header:
+  version: 11
+  includes:
+    - kas/arm-systemready-firmware.yml
diff --git a/ci/arm-systemready-ir-acs.yml b/ci/arm-systemready-ir-acs.yml
new file mode 100644
index 00000000..6cfead6c
--- /dev/null
+++ b/ci/arm-systemready-ir-acs.yml
@@ -0,0 +1,14 @@
+header:
+  version: 11
+  includes:
+    - kas/arm-systemready-ir-acs.yml
+
+env:
+  ACS_TEST: "0"
+
+local_conf_header:
+  testimage: |
+    TESTIMAGE_AUTO = "${ACS_TEST}"
+
+target:
+  - arm-systemready-ir-acs
