DevInCi instellen in GitLab CI/CD
Als een GitLab pipeline faalt is de gebruikelijke workflow: logs lezen, gokken, fix pushen, wachten, herhalen. DevInCi vervangt die cyclus met een live terminal of VS Code IDE in de CI runner zelf. Je klikt op een URL en debugt in exact de omgeving waar de failure optrad.
Wat je krijgt
- Web terminal (ttyd) β volledige shell in je browser, geen SSH keys
- VS Code (code-server) β browser IDE met extensies en debugger
- Beveiligde tunnel URL β HTTPS met ingebedde credentials, deelbaar met teamleden
- Auto-provisioning β credentials, tunnel server en URL worden automatisch afgehandeld
DevInCi is gepubliceerd als GitLab CI/CD Catalog component.
Het gebruikt een eigen Docker image (ubuntu:22.04) en werkt op elke runner met Docker executor.
Vereisten
- Een ASD account (asd.host/workspace)
- Een API key met
cicd:provisionscope - Een GitLab project met CI/CD ingeschakeld
Stap 1: Maak een API key
- Ga naar asd.host/workspace/api-keys
- Klik op Create API Key
- Activeer de
cicd:provisionscope - Kopieer de key β je ziet deze niet meer
Stap 2: Voeg de key toe als CI/CD variabele
- Ga naar je project β Settings β CI/CD β Variables
- Klik op Add variable
- Key:
ASD_API_KEY - Value: plak je API key
- Vink Mask variable aan β dit maskeert de waarde in job logs
- Vink Protect variable aan β beperkt de variabele tot beschermde branches
Belangrijk: GitLab ondersteunt geen runtime secret masking zoals GitHub's ::add-mask::.
De "Mask variable" instelling in project settings is de enige manier om je key uit de logs te houden.
Stap 3: Voeg DevInCi toe aan je pipeline
Include de DevInCi component in je .gitlab-ci.yml en configureer deze om te draaien bij een failure:
stages:
- test
- debug
test:
stage: test
script:
- npm ci
- npm test
include:
- component: gitlab.com/accelerated-software-development/devinci/dev-environment@1
inputs:
api-key: $ASD_API_KEY
tunnel-name: debug-$CI_PIPELINE_ID
stage: debug
dev-environment:
rules:
- when: on_failure
Het include blok haalt de component op uit de GitLab CI/CD Catalog.
Het rules blok zorgt dat DevInCi alleen start wanneer een eerdere stage faalt.
Stap 4: Open de sessie
Wanneer je pipeline faalt, doet DevInCi automatisch:
- Een
ubuntu:22.04container opstarten - Component scripts clonen via
CI_JOB_TOKEN - ASD CLI installeren
- Tunnel credentials aanmaken via je API key
- Web terminal (ttyd) starten
- Beveiligde tunnel verbinden
- Sessie URL schrijven naar een
devinci.envdotenv artifact
De URL is zichtbaar in de job log en wordt ook ingesteld als environment URL voor de job. Klik erop om een live terminal te openen in je browser.
VS Code in plaats van terminal
Stel de interface input in op codeserver voor een volledige VS Code IDE:
include:
- component: gitlab.com/accelerated-software-development/devinci/dev-environment@1
inputs:
api-key: $ASD_API_KEY
interface: codeserver
tunnel-name: vscode-$CI_PIPELINE_IDOn-demand sessies
Trigger DevInCi handmatig in plaats van te wachten op een failure. Gebruik een web-getriggerde pipeline met een handmatige job:
include:
- component: gitlab.com/accelerated-software-development/devinci/dev-environment@1
inputs:
api-key: $ASD_API_KEY
interface: codeserver
tunnel-name: dev-$CI_PIPELINE_ID
dev-environment:
rules:
- if: $CI_PIPELINE_SOURCE == "web"
when: manualGa naar je project β Build β Pipelines β Run pipeline. Klik dan op de play knop bij de DevInCi job.
Outputs gebruiken in downstream jobs
DevInCi schrijft een devinci.env
dotenv artifact
met de TUNNEL_URL variabele. Downstream jobs kunnen deze lezen:
notify:
stage: .post
needs: [dev-environment]
script:
- echo "Debug sessie op $TUNNEL_URL"Custom stage
Standaard gebruikt de component de deploy stage. Overschrijf met de stage input:
include:
- component: gitlab.com/accelerated-software-development/devinci/dev-environment@1
inputs:
api-key: $ASD_API_KEY
tunnel-name: debug-$CI_PIPELINE_ID
stage: buildConfiguratie opties
| Input | Beschrijving | Default |
|---|---|---|
api-key | ASD API key met cicd:provision scope | β |
interface | ttyd (terminal) of codeserver (VS Code) | ttyd |
shell | bash, zsh of powershell | bash |
username | Basic auth gebruikersnaam | asd |
password | Basic auth wachtwoord (automatisch gegenereerd als leeg) | β |
tunnel-name | Subdomein prefix | Korte SHA |
ttl-minutes | Sessie TTL in minuten (0 = geen expiry) | 0 |
region | Tunnel server regio | Auto |
stage | Pipeline stage voor de DevInCi job | deploy |
Troubleshooting
"Failed to provision credentials"
- Controleer of je API key de
cicd:provisionscope heeft - Check of de key niet verlopen is
- Bevestig dat
ASD_API_KEYis ingesteld in CI/CD variabelen
"Tunnel connection failed"
- Controleer of de runner uitgaande SSH op poort 2223 toestaat
- Probeer een andere regio als beschikbaar
Secrets zichtbaar in logs
GitLab ondersteunt geen runtime secret masking. Markeer je ASD_API_KEY variabele als
masked in Settings β CI/CD β Variables.
"git clone" faalt in before_script
De component clonet scripts via CI_JOB_TOKEN. Als het component project privΓ© is,
zorg dat je project toegang heeft via Settings β CI/CD β Token Access.
Samenvatting
Include de DevInCi component in je .gitlab-ci.yml. Als een job faalt, klik op de URL en debug
in exact de runner omgeving. Geen SSH keys, geen handmatige setup.
Kelvin Wuite
Kelvin Wuite is the founder of ASD B.V. With over eighteen years of development experience, he has witnessed the same patterns repeat across every software team - endless documentation, manual preparation, environment mismatches, and fragmented collaboration. His drive is to remove these barriers, enabling engineers to work together in unified environments with shorter feedback loops and hands-on collaboration. Since 2015 he has been refining these ideas, leading to ASD β a platform designed to create a faster, more integrated way for development teams to collaborate in an age where AI is thriving.
Related Articles
How to Set Up DevInCi in GitHub Actions
Set up DevInCi in GitHub Actions for live CI debugging. Get a web terminal or VS Code IDE inside your runner when a job fails. Step-by-step with code examples.
CI/CDHow to Get a Live Terminal in GitHub Actions with ttyd
Debug GitHub Actions failures interactively with ttyd and ASD tunnels. Get a live browser terminal into your CI runner instead of reading logs.
ServicesHow to Debug HTTP Traffic with the Network Inspector
Debug HTTP traffic with mitmproxy and ASD. Capture, inspect, and filter requests in a browser-based UI to understand what your application sends over the network.