Gerrit can update submodules in a containing project when the submodule's project changes. This is used, for example, by our workflow for deploying backports to MediaWiki release branches. It's also been mentioned as potentially useful for frontend tasks.
Does GitLab support anything similar, or will it need to be implemented as a job?
It seems to be at least supported as an action in the API.
Some relevant docs:
- GitLab CI/CD: Using Git submodules with GitLab CI
- API: Update existing submodule reference in repository
- CI runners: GIT_SUBMODULE_STRATEGY: "The GIT_SUBMODULE_STRATEGY variable is used to control if / how Git submodules are included when fetching the code before a build. You can set them globally or per-job in the variables section."