Extend .gitlab-ci.yml to be stages oriented instead of jobs oriented

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Currently, we have .gitlab-ci.yml that is job oriented:

stages:
  - build
  - test
  - review
  - staging

docker-build:
  stage: build
  ...

rspec:
  stage: rspec

It is really complex over sometime.

I think that we could do better job on making these to be stages oriented, and make stages to have their own set of overwritten configuration:

global:
  variables:
    KEY1: VALUE2

stages:
  - name: build
    global:
      image: use/this-docker-image-for-all-stages
      before_script: [bundle install]
    docker-build:
      variables:
        KEY2: VALUE2
      script: docker build ...

  - name: production
    global:
      only: [tags]
    deploy-production:
      ...
Edited by 🤖 GitLab Bot 🤖