CI: Reduce build time
With multiple little optimizations it was possible to reduce the build time for a feature branch from currently around 15 minutes, down to ten minutes.
This was mainly achieved by:
- Dogfooding Directed Acyclic Graphs
- Moving the rollup compilation to the build job and let the two jobs that depend on it use it as an artifact.
- Using faster runners for the build job
ci: Dogfood Directed Acyclic Graphs
GitLab released Directed Acyclic Graphs with 12.2. Theoretically this could help improve build time by running jobs as soon as dependencies are fulfilled:
https://docs.gitlab.com/ee/ci/directed_acyclic_graph/
ci: Move build logic to build step
At the moment we build (yarn build) the rolled up version of GitLab UI
in two build jobs:
- publish
- upload_artifacts
This moves this to the common "build" job and let's both of those jobs depend on it. This should help us safe compute time in both cases.
ci: Use gitlab-org runner for the build step
The gitlab-org runners have higher performance, so this should help us running pipelines faster
ci: Only use puppeteer image when needed
We only need to use the puppeteer image for the visual tests. In all other node jobs we can use the much smaller node image directly.