ciburst

Adopt

You need a Scaleway account with a payment method and the Owner role in the GitLab project. The commit Adopt ciburst of ciburst-adopt-demo shows the repository side on a real project: the include, a ciburst.json with two lanes, and the lane jobs' tags.

  1. Scaleway key. Console, IAM: an application with a policy on the organization holding IAMManager, ProjectManager, InstancesFullAccess, ServerlessJobsFullAccess, FunctionsFullAccess and ObjectStorageFullAccess; then an API key for it.Checkyou hold its access key, its secret key and the organization id.
  2. GitLab token. Edit profile, Access tokens: a personal access token with the scopes api and create_runner, with an expiry.Checkthe token lists both scopes.
  3. Variables. Project, Settings, CI/CD, Variables: CIBURST_SCW_ACCESS_KEY, CIBURST_SCW_SECRET_KEY, CIBURST_SCW_ORGANIZATION_ID, CIBURST_GITLAB_TOKEN; each protected, visibility "Masked and hidden", environment scope ciburst. The default branch must be protected.Checkfour variables with environment ciburst.
  4. Include. In .gitlab-ci.yml on the default branch:
    include:
      - component: gitlab.com/ciburst/ciburst/ciburst@1
    
    Every job without its own tags now runs on the VM runner. Docker-in-Docker jobs extend .ciburst-docker. Jobs that must stay on GitLab's runners keep tags: [saas-linux-small-amd64] and go into ignoreJobs of ciburst.json (below), or their pending events start VMs.Checkthe pipeline shows the manual jobs ciburst-setup, ciburst-check, ciburst-destroy and ciburst-invite; the other jobs wait.
  5. Setup. Run ciburst-setup.Checkthe waiting jobs start on the runner ci-<project id>-vm. Running it again changes nothing.

Customize with ciburst.json at the repository root, then run ciburst-setup again. Each top-level key replaces the default's whole value; a key left out of vm keeps its default (docs/SPEC.md section 5.4). Example, the Amsterdam region, one job per VM, and a job that stays on GitLab's runners:

{
  "provider": { "type": "scaleway", "region": "nl-ams" },
  "vm": { "slots": 1 },
  "ignoreJobs": ["pages"]
}

Undo: add the project variable CIBURST_DESTROY with the deployment's name (ci-<project id> unless ciburst.json sets name), protected, environment scope ciburst, then run ciburst-destroy.Checkthe log ends with destroyed <name>; the webhook, the runners, the output variables and the Scaleway project are gone. Then remove the include and ciburst.json, and delete the five variables. Removing the include first leaves the webhook behind, and every later job still starts a VM.