Refactor internal links testing

If we want to make it possible for internal_links to work inside CE and EE repos (https://gitlab.com/gitlab-com/gitlab-docs/issues/305), we need to change the workflow.

Workflow

  1. Branch is pushed
  2. Build starts
  3. Temp Docker image is created and pushed in a temp Registry dir
  4. Internal links check starts in 5 parallel jobs, build cache is downloaded in all (can add as a dependency)
    1. Test without providing a Nanoc environment (tests site with all products present)
    2. Test each product separately (for example in CE: run rm -r public/{ee,omnibus,runner}, then check links based on env)
  5. Tests pass
  6. MR is merged
  7. Temp Docker image is deleted (is there an API?)
  8. New Docker lint image is created on master

Todos

The following issues/MRs should be closed/implemented in that order:

  1. Exclude checking of some internal links based on the Nanoc environment https://gitlab.com/gitlab-com/gitlab-docs/merge_requests/382
  2. Create and upload a test lint Docker image for each branch https://gitlab.com/gitlab-com/gitlab-docs/merge_requests/384
  3. Move the lint Dockerfile in this project https://gitlab.com/gitlab-com/gitlab-docs/issues/306
  4. Create parallel jobs for internal links testing https://gitlab.com/gitlab-com/gitlab-docs/issues/308
  5. Update .gitlab-ci.yml in CE/EE https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23700
Edited by Achilleas Pipinellis