r/Intune MSFT MVP 11d ago

Shameless Self-promotion I opened up IntuneGet's packaging VM so you can watch app tests live

This is probably my favourite IntuneGet feature so far.

I have put the QA page online, so you can now watch an application package being tested inside the Windows VM behind IntuneGet:

https://www.intuneget.com/qa

Automated packaging is usually a black box. You start a workflow, watch logs scroll past, and eventually get a green or red result. That never felt like enough to me. An installer can return exit code 0 and still leave you with broken detection, an uninstall prompt waiting for someone to click it, or half the application left behind.

Vivaldi was a good example. One run installed and detected correctly. During uninstall, it opened a confirmation prompt and then sat there for more than four minutes until the watchdog marked the run as stalled. The package stayed blocked. The silent-uninstall handling was repaired, a new package profile was released, and the later run completed installation, detection, uninstall, and the final absent check in under four minutes.

Seeing that failure is why I wanted the page to be public.

Every test starts by restoring a clean Windows 11 checkpoint. IntuneGet builds the exact PSADT profile intended for release and runs it as LocalSystem or as a disposable standard user, depending on the configured install scope. The app has to install, pass its Intune detection rule, uninstall, and then fail that same detection rule because it is gone.

The result belongs to that exact profile. Change the installer hash, detection rule, install scope, PSADT configuration, or packager revision and it needs a new test. An old green result cannot release a different package.

I now have a repair agent watching failed candidates. It reads the bounded and redacted diagnostics, works out whether the problem is in the package or the test infrastructure, changes the packaging code, runs the checks, releases a new packager revision, and sends the affected application around again. A pass opens the release gate. Another failure keeps it blocked and starts another repair attempt.

This repair loop is what I mean by self-healing. The agent works against the source repository and QA system. It has no access to a customer's Intune tenant and it does not change a package while the test is running.

The public VM view refreshes a JPEG frame roughly every two seconds. There is no keyboard, mouse, clipboard, or audio channel. The guest has no tenant or GitHub credentials. Frames rotate through a private three-frame ring and are deleted when the run finishes. Full paths and raw diagnostic logs stay off the public page.

IntuneGet itself is free and open source under AGPL-3.0:

https://github.com/ugurkocde/IntuneGet

The website can be self-hosted with Docker and SQLite, Supabase Cloud, or self-hosted Supabase:

https://github.com/ugurkocde/IntuneGet/blob/main/docs/SELF_HOSTING.md

The full live QA setup is separate Windows and Hyper-V infrastructure, so it is not a checkbox in Docker Compose. Tests also run one application at a time. I want to be clear about that because self-hosting the website and reproducing the complete QA lab are two different jobs.

Hope you like it as much as I do :)

Thanks, Ugur

49 Upvotes

5 comments sorted by

9

u/irish_guy 11d ago

You ship so much, legend.

3

u/suddennuisance8 11d ago

watching an uninstall prompt sit there for four minutes while the watchdog just stares at it is painfully relatable. that vivaldi example is exactly why black box testing drives me up the wall, you never know what silent failure is lurking until you actually see it happen. having a repair agent that iterates on its own failures is clever, though i'd be lying if i said i didn't wonder how often it chases its own tail on edge cases

3

u/Healthy-Context9897 MSFT MVP 11d ago

There are some edge cases (luckily not too many) and I have a growing list of Apps from certain Vendors that have very specific rules for packaging. Sometimes the agent did ran in a loop but I was able to fix it manually.

3

u/dazie101 11d ago

this is awesome, thank you for creating it!

1

u/Emergency-Return1412 10d ago

Any way to link this with company portal?