chocolatey/Thilas | Workflow status | Failed updates
This repository contains chocolatey automatic packages. The repository is setup so that you can manage your packages entirely from the GitHub web interface (using GitHub Actions to update and push packages) and/or using the local repository copy.
- All packages in this repo should be in conformity with the contributing guidelines.
- Get the production url (for icons) by pasting the raw url here and using the right (CDN) result.
To run locally you will need:
- Powershell 5+:
choco install powershell
. - Chocolatey Automatic Package Updater Module:
Install-Module au
orchoco install au
.
To create a new package see Creating the package updater script.
In a package directory run: Test-Package
. This function can be used to start testing in chocolatey-test-environment via Vagrant
parameter or it can test packages locally.
To test in WindowsSandbox use .vscode/test.ps1
from a package directory like this (-ChocoParameters
is optional):
../.vscode/test.ps1 -ChocoParameters ''
Run from within the directory of the package to update that package:
cd <package_dir>
./update.ps1
If this script is missing, the package is not automatic.
Set $au_Force = $true
prior to script call to update the package even if no new version is found.
To update all packages run ./update_all.ps1
. It accepts few options:
./update_all.ps1 -Name a* # Update all packages which name start with letter 'a'
./update_all.ps1 -ForcedPackages 'cpu-z copyq' # Update all packages and force cpu-z and copyq
./update_all.ps1 -ForcedPackages 'copyq:1.2.3' # Update all packages but force copyq with explicit version
./update_all.ps1 -Root 'c:\packages' # Update all packages in the c:\packages folder
The following global variables influence the execution of update_all.ps1
script if set prior to the call:
$au_NoPlugins = $true #Do not execute plugins
$au_Push = $false #Do not push to chocolatey
You can also call AU method Update-AUPackages
(alias updateall
) on its own in the repository root. This will just run the updater for the each package without any other option from update_all.ps1
script. For example to force update of all packages with a single command execute:
updateall -Options ([ordered]@{ Force = $true })
You can force the update of all or subset of packages to see how they behave when complete update procedure is done:
./test_all.ps1 # Test force update on all packages
./test_all.ps1 'cdrtfe','freecad', 'p*' # Test force update on only given packages
./test_all.ps1 'random 3' # Split packages in 3 groups and randomly select and test 1 of those each time
Note: If you run this locally your packages will get updated. Use git reset --hard
after running this to revert the changes.
You can force package update and push using GitHub Actions. Just manually run the Update workflow and define package(s) to include.
To see how versions behave when package update is forced see the force documentation.
You can also push manual packages with command [PUSH pkg1 ... pkgN]
. This works for any package anywhere in the file hierarchy and will not invoke AU updater at all.
If there are no changes in the repository use --allow-empty
git parameter:
git commit -m '[AU copyq less:2.0]' --allow-empty
git push
To use this system with your own packages do the following steps:
- Fork this project. If needed, rename it to
au-packages
. - Delete all existing packages.
- Edit the
README.md
header with your repository info. - Set your environment variables. See AU wiki for details.
Add your own packages now, with this in mind:
- You can keep both manual and automatic packages together. To get only AU packages any time use
Get-AUPackages
function (aliaslsau
orgau
) - Keep all package additional files in the package directory (icons, screenshots etc.). This keeps everything related to one package in its own directory so it is easy to move it around or remove it.