Pipeline fails with /entrypoint: line 21: exec: gitlab-runner-build: not found

I’m having some trouble getting my CI pipeline to work.
No matter what I try the pipeline fails with:

Preparing environment                                      00:03
/entrypoint: line 21: exec: gitlab-runner-build: not found

Here is a somewhat minimal example of this:
EDEADLINK / ci-failing-example · GitLab, which is pulling a docker image with this dockerfile:

FROM archlinux:latest
RUN pacman-key --init
# update mirrorlist
RUN until curl -s -o /etc/pacman.d/mirrorlist "https://archlinux.org/mirrorlist/?country=US&protocol=https&use_mirror_status=on"; do sleep 1; done
RUN sed --in-place -e 's/^#Server/Server/' /etc/pacman.d/mirrorlist
RUN pacman --noconfirm -Syyu archlinux-keyring
RUN pacman --noconfirm -S base-devel llvm
RUN pacman --noconfirm -S "nodejs<=19.7.0-1"
RUN corepack enable && corepack prepare yarn@stable --activate
RUN pacman --noconfirm -S rustup && rustup update
RUN rustup default stable
RUN pacman --noconfirm -S wasm-pack
ENTRYPOINT ["/bin/bash", "-c"]

You can see the failing pipeline here pages (#4001989219) · Jobs · EDEADLINK / ci-failing-example · GitLab

I’m at my wits end about what’s happening here.

EDIT: it seems like gitlab isn’t happy with how I define env variables.

Hmm. It seems as though the problem was trying to set the PATH environment variable. Gitlab doesn’t like that.

this works, do this:

before_script:
   - export "PATH=${CARGO_HOME}/bin:$PATH"

this doesn’t work, don’t do this:

variables:
    PATH: "$PATH:${CARGO_HOME}/bin"

Maybe that should have been obvious but it stumped me.

When variable expansion happens is kinda weird, ngl.