diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6a6a9ae79829fdee960e3aa4b5f80e8c2f309c25..1c488f36b5e178aade843c1a29c2c9dcd00619e4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,8 +2,26 @@
 build:
   image: buildpack-deps:bullseye
   before_script:
+    - |
+      case "$GOARCH" in
+      386) DEBARCH="i386";;
+      amd64) DEBARCH="amd64";;
+      arm) DEBARCH="armhf";;
+      arm64) DEBARCH="arm64";;
+      esac
+    - dpkg --add-architecture "$DEBARCH"
     - apt-get update
-    - apt-get install -y meson golang systemd podman go-md2man bash-completion shellcheck cmake
+    - >-
+      apt-get install -y
+      bash-completion
+      "cmake:$DEBARCH"
+      "crossbuild-essential-$DEBARCH"
+      "golang:$DEBARCH"
+      "go-md2man:$DEBARCH"
+      "meson:$DEBARCH"
+      "podman:$DEBARCH"
+      "shellcheck:$DEBARCH"
+      "systemd:$DEBARCH"
     - git clone https://github.com/containers/toolbox.git
     - cd toolbox
   script:
@@ -15,3 +33,7 @@ build:
       - toolbox/builddir/doc/
       - toolbox/builddir/meson-logs/
       - toolbox/builddir/.ninja_log
+  parallel:
+    matrix:
+      - GOOS: ["linux"]
+        GOARCH: ["386", "amd64", "arm", "arm64"]