Make use of Gitlab's pipeline stagings separate build, from tests from deployment
As talked about here: !1675 (comment 848712358) We should be building everything, running tests, collecting coverage and deploying the binaries/archives, tests and coverage reports.
https://docs.gitlab.com/ee/ci/pipelines/pipeline_architectures.html
stages:
- build
- test
- deploy
image: alpine
build_a:
stage: build
script:
- echo "This job builds something."
build_b:
stage: build
script:
- echo "This job builds something else."
test_a:
stage: test
script:
- echo "This job tests something. It will only run when all jobs in the"
- echo "build stage are complete."
test_b:
stage: test
script:
- echo "This job tests something else. It will only run when all jobs in the"
- echo "build stage are complete too. It will start at about the same time as test_a."
deploy_a:
stage: deploy
script:
- echo "This job deploys something. It will only run when all jobs in the"
- echo "test stage complete."
deploy_b:
stage: deploy
script:
- echo "This job deploys something else. It will only run when all jobs in the"
- echo "test stage complete. It will start at about the same time as deploy_a."
This should cut down further the number of jobs we need to run further, isolate in stages and we can show the results in gitlab in a clear way.
Such as visualising test coverage
https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html