Skip to main content
How to use GitLab with your Orka environment. MacStadium provides seamless integration between Orka and GitLab. Both Shell and custom executors are supported. MacStadium provides scripts and a template configuration for custom executors. New to Orka? See how teams use it for CI/CD.
Current release: v2.0.1.

Set Up a Shell Executor

Shell executors are useful when you need permanent executors that you can reuse across builds. For the latest information about how to work with a Shell executor in Orka, see Using a GitLab Shell Executor to Run CI/CD Pipelines in Orka.

Set Up a Custom Executor

Custom executors are useful when you need to work with ephemeral executors and automate their management. With a custom executor, an executor is created before the pipeline is run and destroyed after the pipeline is complete. For the latest information about how to work with a custom executor in Orka, see Using a GitLab Custom Executor to Run CI/CD Pipelines in Orka.
Cache restoration and artifact downloading require the gitlab-runner binary to be present inside the Orka VM. If your pipeline logs show “Missing gitlab-runner. Extracting cache is disabled.” or “Missing gitlab-runner. Artifacts downloading is disabled.”, install the gitlab-runner binary in your base image before creating your VM config.

Run concurrent builds

By default, the config template sets concurrent = 1, which means only one build runs at a time. To run multiple builds simultaneously, update two settings in your config.toml:
  • concurrent (global): the total number of jobs that can run at the same time across all runners.
  • limit (per runner, under [[runners]]): the maximum number of jobs this specific runner handles concurrently.
Both values should match. For example, to allow 10 concurrent builds:
See the GitLab Runner advanced configuration for the full list of options.

Custom executor environment variables

The custom executor reads its configuration from environment variables, set either as GitLab CI/CD variables (Settings → CI/CD → Variables, for anything the runner scripts need during job execution) or passed to the runner container at startup (for anything needed at the container level, like ORKA_ENDPOINT). Mask ORKA_TOKEN and ORKA_SSH_KEY_FILE in GitLab since they’re sensitive.

Beyond a single executor

  • Image caching. If cold starts on a new base image are slow, see Image Caching to pre-cache it on specific nodes ahead of time.
  • Burst capacity. If a fixed pool isn’t enough during peak build periods, Orka Burst adds on-demand elastic capacity without a long-term hardware commitment.

Troubleshooting

If your build script itself fails, that’s a script problem, not an integration problem. The custom executor distinguishes build failures (your script’s exit code) from system failures (infrastructure, always exit code 1). For anything not covered here, check the runner logs (gitlab-runner --debug run) before contacting support.

Support

Open a ticket in the MacStadium Portal and include your gitlab-runner --debug run output.