diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 359466a6279ec6b30a1081534dfa1b38c40ea8f4..cdedd5639936878fbe5e7addc67f007cdf607a8f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -130,6 +130,11 @@ target:lantiq-xway:
   variables:
     GLUON_TARGET: lantiq-xway
 
+target:mediatek-filogic:
+  extends: .target
+  variables:
+    GLUON_TARGET: mediatek-filogic
+
 target:mediatek-mt7622:
   extends: .target
   variables:
@@ -160,6 +165,11 @@ target:ramips-mt76x8:
   variables:
     GLUON_TARGET: ramips-mt76x8
 
+target:realtek-rtl838x:
+  extends: .target
+  variables:
+    GLUON_TARGET: realtek-rtl838x
+
 target:rockchip-armv8:
   extends: .target
   variables:
diff --git a/scripts/generate-gitlab-ci-targets.sh b/scripts/generate-gitlab-ci-targets.sh
new file mode 100755
index 0000000000000000000000000000000000000000..be8b56e0efa9a4f8d51170e652382ae7507ababe
--- /dev/null
+++ b/scripts/generate-gitlab-ci-targets.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+set -eu
+mydir=$(readlink -f "$(dirname "$0")/..")
+
+make -s -C "$mydir/gluon" GLUON_SITEDIR="$mydir" list-targets | while read target; do
+	cat <<EOF
+target:${target}:
+  extends: .target
+  variables:
+    GLUON_TARGET: ${target}
+
+EOF
+done