Skip to content

Multilingual Application Toolkit extension installation troubleshooting#5

Open
gbakeman wants to merge 9 commits intomainfrom
mat-test
Open

Multilingual Application Toolkit extension installation troubleshooting#5
gbakeman wants to merge 9 commits intomainfrom
mat-test

Conversation

@gbakeman
Copy link
Copy Markdown
Owner

@gbakeman gbakeman commented Jan 18, 2025

The Multilingual Application Toolkit extension (ID dts-publisher.mat2022) takes a long time to install for people using GitHub-hosted runners. Improvements are being made to troubleshoot and fix the issue.

See also

Trying to reproduce the issue where the Multilingual App Toolkit extension takes a long time (10/20 minutes)
- New parameters for launching the main script:
  - MonitorProcessInfo (false) - regularly print the process object tracking VSIXInstaller to get a basic level of information about it.
  - OutputDetailedInfo (false) - Output to terminal all associated logs with VSIXInstaller as they're written, rather than a more normal amount.
- Adding VSCode debug launch configs, with the default being for the MATS extension (debugging slow installation)
- Adding error preference to stop the script in case of problems that need to be fixed
- Expanding some global variables for reference later in the script
- Removing /a admin switch since this script should be run as administrator to begin with, and the /a switch may cause VSIXInstaller to try to request admin rights with a UAC dialog which cannot be caught by the script. With this way, it should quickly fail for further investigation.
- Removing -Wait argument and assigning `Start-Process` output to a variable so the object is returned quickly, and script execution can continue to monitor progress. This will become useful in the next commit.
- Use FSWatcherEngineEvent to monitor the temp directory for logs that are written by VSIXInstaller, and print them out in (near) real time as allowed by the writer. This is configurable by the user through previously added argument.
- Because we returned the process object earlier, the script can now sit in a loop waiting until the main VSIXInstaller process exits. This allows for
  - Regular monitoring of the Process object (shows information such as CPU use)
  - Monitoring of desired log files for printing directly to the console (hopefully to help with long install times)
- Updated cleanup code accordingly
- Check if VSIXInstaller exited with an abnormal exit code, and if so, find any exceptions and print them out
- Also avoid exiting the terminal if not in a github workspace
- Updating action definition to include script parameters, as well as provide a convenient output for users to find VSIXInstaller's log files.
- Standardizing input naming convention on camel case for readability and consistency - note that this changes the original parameter named "packagename"!
- Dividing up two separate tests in the action testing workflow to take advantage of concurrency
- Changing the MAT test to enable process monitoring, as well as confirming the action output at the end.
@gbakeman gbakeman force-pushed the mat-test branch 12 times, most recently from 408e302 to b7aea69 Compare February 14, 2025 20:51
@gbakeman gbakeman force-pushed the mat-test branch 9 times, most recently from 5b2957e to 57c93cc Compare February 15, 2025 21:43
- Properly split PowerShell script call across multiple lines
- Simplify job names/IDs
- "Force" module installation to work around workflow issue ("User declined to install module")
- Simplified main loop condition
- Making it clear that log files are always in the $TEMP directory.
- Making file watcher activity print to host (to debug GitHub worker quirks)
- Slightly slow down loop
- Install packages correctly according to GitHub
- Attempt to grab logs in one test
- Add workflow dispatch
- Updated tests to take advantage of this for further troubleshooting
- Fix reference to envars in action
- Fix action variable syntax in tests
- More detailed file events, updated launch json
- Make boolean parameters into switches
- Test gen log path
- Cleaned up parameter definitions, fixed VSCode debug launch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant