Debian based docker image derived from Debian-slim, Use case:
- Build: PowerShell Modules in the form or
folder,.zip, or.nupkg. - Build: Dotnet binaries.
- Build: Nuget packages:
- Package: Nuget packages:
- Gitlab
.nupkgpackages. - Chocolatey
.nupkgpackages. - Proget nuget
.nupkgpackages. - Proget chocolatey
.nupkgpackages.
- Send: codecov results/reports upload.
- Send: coveralls results/reports upload.
- Copy Build files:
Build-Modulesee the Psmpacker README for more information on how to use Psmpacker. - Build
DotNetbinaries:dotnet buildsee the README for more information on how to usedotnet build. - Package .nupkg packages using
nuget packsee:- creating-a-package for more information on how to create a Nuget package.
- using nuget pack for more information on how to use nuget pack.
- Package .nupkg packages compatible with proget:
New-NuspecPackageFileandNew-NupkgPackagesee the README for more details on how to use nupsforge. - Build Chocolatey packages using
New-ChocoNuspecfileandNew-ChocoPackagesee the README for more details on how to use nupsforge. - Generate Verification Checksums:
New-VerificationFilefrom csverify see the README for more information on how to usecsverify. - Generate Semantic Version using
Get-GitAutoVersioncmdlet. - Publish code coverage results to codecov
- Publish code coverage results to coveralls
- Run Powershell commands and scripts using default shell:
pwsh -c './phellams/myscript.ps1'
π£ Binaries
- β DotNet SDK v8.0.412
- β PowerShell Core 7.5.2
- β Git
- β
Chocolatey
- For Choco Packages
choco packandchoco pushuse the offical choco docker image: https://github.com/chocolatey/choco-docker, you can build the .nupkg file with nupsforge and using choco docker image to to deploy. - Choco is not supported by Linux. but can be run throw mono.
- For Choco Packages
- β
Nuget
- Nuget 6.x is is executed through mono and can be call by the default nuget executable.
- β Codecov
- β curl
- β wget
π‘ Common Binaries
π΅ Powershell Modules
- β
Pester 5.5.0
- Testing framework for PowerShell.
- β
PsScriptAnalyzer 1.0
- PowerShell Script Analyzer.
- β
PowerShell-Yaml 1.0
- PowerShell YAML parser.
- β
ColorConsole
- Colorful console output using ANSI escape sequences default powershell console color pallete.
- β
Tadpol
- Progressbars, loaders, and spinners generator.
- β
ShellDock
- Simple Runspace Executor with progress indicator.
- β
Quicklog
- Console logger with color support.
- β
Nupsforge
- Nuget Package Generator: supports: psgallary, chocolatey, proget(psgallary,chocolatey), gitlab packages, github packages.
- β
Psmpacker
- Build folder Generator.
- β
CSVerify
- Code Verification via VERIFICATION.txt.
- β
GitAutoVersion
- Git Semantic Versioning generator.
π΅ Powershell Profile
- β
powerShell.profile.ps1
- Custom powershell profile with default output displaying image information.
- Import modules and functions from
./includes/.
π£ Building the container locally.a
The Gitlab docker build is is managed by the Phellams-Automator docker image, using the gitab workflow ci pipeline.
git clone https://gitlab.com/phellams/phellams-automator.git
cd phellams-automator
docker build -t phellams-automator -f phellams-automator.dockerfile .
docker image inspect phellams-automator #| jqUsing local bulid script
# or use `phellams-automator-local-builder.ps1` powershell script
sudo pwsh -c ./phellams-automator-local-builder.ps1 -buildMode Basegit clone https://github.com/phellams/phellams-automator.git
cd phellams-automator
docker build -t phellams-automator -f phellams-automator.dockerfile .
docker image inspect phellams-automator #| jqUsing local bulid script
# or use `phellams-automator-local-builder.ps1` powershell script
sudo pwsh -c ./phellams-automator-local-builder.ps1 -buildMode BaseLocal builds are tagged with
:localbuild
π£ Output container information.
Default shell is
pwshand will output the container information.
docker run --rm phellams-automatorπ’ Mount path examples for running commands inside the container.
# dynamic path
docker run -it -v .:/phellams-automator docker.io/sgkens/phellams-automator
# absolute path
docker run -it -v $(pwd):/phellams-automator docker.io/sgkens/phellams-automator
Or, if you want to use the absolute path with WSL2:
# Wsl2
docker run -it -v $(wslpath -w $(pwd)):/phellams-automator docker.io/sgkens/phellams-automator# Linux
docker run -it -v $(pwd):/phellams-automator docker.io/sgkens/phellams-automatorπ£ Some examples running commands inside the container.
# nuget
docker run --rm -v .:yourfolder docker.io/sgkens/phellams-automator nuget pack ./
# pester
docker run --rm -v .:yourfolder docker.io/sgkens/phellams-automator invoke-pester -script ./tests/tests.ps1
# psscriptanalyzer
docker run --rm -v .:yourfolder docker.io/sgkens/phellams-automator invoke-psscriptanalyzer -script ./tests/tests.ps1
# dotnet
docker run --rm -v .:yourfolder docker.io/sgkens/phellams-automator dotnet build
# gitautoversion
docker run --rm -v .:yourfolder docker.io/sgkens/phellams-automator (Get-Gitautoversion).Versionπ£ Interactive shell
docker run --rm -it -v .:yourfolder docker.io/sgkens/phellams-automator:latest
# Running script in container
docker run -it --rm -v $(pwd):/phellams -w /phellams sgkens/phellams-automator:latest pwsh -c './phellams/myscript.ps1'π‘ Task List
- Add Ruby support to allow building of jekyll websites
- Add RubyGems support - required dependencies
- Add toml support with ptoml
- Add chocolatey support Chocolatey is not officially supported by linux* however it doesnt explicitly say it is not supported, use mono and compile choco for mono, use choco offical package,
docker.io/chocolatey/choco:latest - Fix outstanding Security Vulnerabilities reported by dockerhub vulnerability scanner.
- update nupsforge to support gitlab packages
- Add coveralls
- add codecov
- add nuget via mono to access nuget v 6.x + in debian 12
Feel free to contribute! Fork the repo and submit a merge request with your improvements. Or, open an issue with the enhancement tag to discuss your ideas.
- Fork the Project from
git clone https://gitlab.com/phellams/phellams-automator.git - Create your Feature Branch check out the branch dev
git switch dev.git switch -c feature/AmazingFeature- or
git checkout -b feature/AmazingFeature
- Commit your Changes
git commit -m 'Add some AmazingFeature' - Push to the Branch
git push origin feature/AmazingFeature - Open a Merge Request
Distributed under the MIT License. See LICENSE.txt for more information.