MASTER'S THESIS · 2025
Immersive CI/CD
A VR factory for exploring GitHub Actions execution history.
Each workflow becomes a floor, each run a block on a conveyor-like timeline, and each job a smaller block contained within its run.

- CONTEXT
- Individual Master's thesis · FEUP
- ROLE
- Design · engineering · evaluation
- RESULT
- 17/20 · 20 participants
- STACK
- Unity · C# · OpenXR · GitHub API
The problem
GitHub Actions is effective for inspecting one run at a time, but it is difficult to see timing, overlap, hierarchy and failures across many workflows in one view. This thesis explored whether a spatial representation could support that broader perspective.
What I owned
- Integrated the GitHub Actions REST API and local JSON snapshots through a shared data-provider abstraction.
- Modelled workflows, runs and jobs, then generated the factory scene procedurally from their hierarchy and timestamps.
- Built VR navigation, hover information panels, floor selection, magnification and world-scaling tools.
- Added visual failure states and supplementary spatial audio for failed runs.
- Designed, conducted and analysed a counterbalanced within-subjects study with 20 participants.
Engineering highlights
Time in 3D space
Mapped a shared timestamp origin to the Z-axis and execution duration to block length, preserving alignment across workflow floors.
Concurrent lanes
Used greedy first-fit interval assignment so overlapping runs and jobs appear side by side while sequential activity reuses space.
Compressed idle time
Detected repository-wide inactive periods and replaced long empty distances with labelled portals that make the discontinuity explicit.
How the visual model works
- Height
- A separate floor for each workflow
- Depth
- Time, with older activity farther into the scene
- Width
- Parallel lanes for intervals that overlap in time
- Containment
- Workflow → run → job hierarchy
From data to an interactive scene
Each workflow becomes a floor, each run a block on a conveyor-like timeline, and each job a smaller block contained within its run.
- 01GitHub Actions REST API or local JSON
- 02Data-provider abstraction
- 03Workflow, run and job model
- 04Procedural Unity scene
- 05XR interaction and spatial audio
Balancing overview and detail
The large factory view made timing and status patterns visible across workflows, but increased the cost of inspecting individual jobs. Direct floor navigation, hover panels, a magnifier and world scaling helped bridge that gap. The study still showed that the conventional interface was faster for fine-grained job lookup.



Visual status cues
Success, in-progress and failure states use a blue, yellow and red hierarchy. I examined the palette through common colour-vision simulations, but did not validate it with colour-vision-deficient participants.
Evaluation
Twenty mostly FEUP computer-engineering students and graduates used both interfaces. Three comparative tasks measured time and success; a fourth VR-only task isolated spatial audio.

What I learned
- Spatial overview and conventional detail views solve different parts of the inspection problem.
- Concurrency inferred from timing is useful visually, but it is not the same as declared job dependencies.
- Spatial audio worked only as a supplementary cue: 13 of 20 participants completed the audio-only task, with vertical localisation the main weakness.
- The academic sample, fixed dataset and short task set limit how far the findings can be generalised.
What the evaluation showed
In this 20-participant study, VR was faster for temporal navigation and run-level failure scanning, while GitHub Actions was faster for detailed failed-job lookup. The result suggests complementary strengths rather than overall superiority. The thesis received 17/20.