On my list of things to play around with: [Wayback/Archive.is] chocolatey-community/chocolatey-test-environment: A testing setup related to how the Chocolatey Package Verifier runs testing. Used for manual testing or prior to submission
It sort of is a standalone version of the [Wayback] Chocolatey Software Docs | Package Verifier Moderation Service that you can use to check Chocolatey package that you develop/modify.
From the github repository README:
Requirements
You need a computer with:
- a 64-bit processor and OS
- Intel VT-x enabled (usually not an issue if your computer is newer than 2011). This is necessary because we are using 64bit VMs.
- Hyper-V may need to be disabled for Virtualbox to work properly if your computer is a Windows box. NOTE: This may actually not be required.
- At least 10GB of free space.
Setup
To get started, ensure you have the following installed:
- Vagrant 1.8.1+ – linked clones is the huge reason here. You can technically use any version of Vagrant 1.3.5+. But you will get the best performance with 1.8.x+. It appears you can go up to Vagrant 2.1.5, but may have some issues with 2.2.2 and Windows guests (newer versions may be fine).
- Virtualbox 4.3.28+ – 6.1.6 (this flows in the selection of Vagrant – 5.2.22 seems to have some issues but newer versions may work fine)
- vagrant sahara plugin (
vagrant plugin install sahara
)NOTE: If you decide to run with version 1.8.1 of Vagrant, you are going to need to set the
VAGRANT_SERVER_URL
environment variable as described in this forum post, otherwise, you will get an HTTP 404 error when attempting to download the base vagrant box used here.
Related: people wanting to do a similar thing for Linux: [Archive.is] chocolatey/choco: Has anyone ever tried to set up virtual box with linux (e.g. ubuntu) for choco testing ? – Gitter
Yes, it should work for
choco new
,choco pack
, andchoco push
, running on mono.
[Wayback/Archive.is] https://github.com/chocolatey/choco/runs/3660684196?check_suite_focus=true…
There is also a
dockerfile
available here:
[Wayback/Archive.is] https://github.com/chocolatey/choco/tree/develop/dockerHowever, as @AdmiringWorm said, there are not any official builds or official support at this time.
…
In my own private fork of choco however I’m using such interfaces as RestartManager
//https://docs.microsoft.com/en-us/windows/win32/api/restartmanager/nf-restartmanager-rmstartsession [DllImport("rstrtmgr.dll", SetLastError = true, CharSet = CharSet.Auto)] static extern int RmStartSession(out uint pSessionHandle, int dwSessionFlags, string strSessionKey); //https://docs.microsoft.com/en-us/windows/win32/api/restartmanager/nf-restartmanager-rmendsession [DllImport("rstrtmgr.dll", SetLastError = true)] static extern int RmEndSession(uint pSessionHandle); //https://docs.microsoft.com/en-us/windows/win32/api/restartmanager/nf-restartmanager-rmgetlist [DllImport("rstrtmgr.dll", SetLastError = true)] static extern int RmGetList(uint dwSessionHandle, out uint pnProcInfoNeeded, ref uint pnProcInfo, [In, Out] ProcessInfo[] rgAffectedApps, ref uint lpdwRebootReasons);
those will be windows specific indeed, but I’ll reach them later on.
–jeroen