Debian-based Docker image derived from Debian-12-slim.
Use case:
-
Build: PowerShell modules in the form of
folder,.zip, or.nupkg. -
Build: .NET binaries.
-
.NET SDK v8.0.412
- Libraries and binaries (AOT)
-
.NET SDK v10.0.103
- Libraries and binaries (AOT)
-
-
Build: NuGet packages:
- GitLab
.nupkgpackages. - Chocolatey
.nupkgpackages. - ProGet NuGet
.nupkgpackages. - ProGet Chocolatey
.nupkgpackages.
- GitLab
-
Send: Codecov results/reports.
-
Send: Coveralls results/reports.
-
Build: RubyGems gems.
-
Build: Jekyll websites.
- Build Gem-based Jekyll websites.
This image is intended to be used with the Automator-Devops automation suite to build and deploy PowerShell modules, .NET binaries, NuGet packages, Chocolatey packages, RubyGems packages, and Jekyll websites.
This image is not intended to be used as a standalone image. It is intended to be used with the Automator-Devops automation suite or other similar automation suites or scripts.
Copy Build files:
NOTE! PowerShell module specific
Build-Modulefrom Psmpacker. See the README for more information on how to use Psmpacker.
Build .NET binaries:
dotnet build. See the README for more information on how to usedotnet build.
Package .nupkg packages:
-
nuget pack. See:- 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 psgallery, chocolatey, gitlab packages, github packages:
- Chocolatey
.nupkgpackages:New-ChocoNuspecFileandNew-ChocoPackage. See the README for more details on how to use Nupsforge. - ProGet NuGet
.nupkgpackages:New-NuspecPackageFileandNew-NupkgPackage. See the README for more details on how to use Nupsforge. - ProGet Chocolatey
.nupkgpackages:New-ChocoNuspecFileandNew-ChocoPackage. See the README for more details on how to use Nupsforge.
Generate Verification Checksums:
Generate Semantic Version using Get-GitAutoVersion cmdlet:
- Git semantic versioning generator:
Get-GitAutoVersioncmdlet.
Publish code coverage results to codecov:
- Publish code coverage results to Codecov.
Publish code coverage results to coveralls:
- Publish code coverage results to Coveralls.
Run PowerShell commands and scripts using default shell:
pwsh -c './phellams/myscript.ps1'
Build, pack, and deploy RubyGems:
- [WIP] Build, pack, and deploy RubyGems packages using
GemCommander. See the README for more details on how to use GemCommander.
Build, pack, and deploy Jekyll websites:
- [WIP] Build, pack, and deploy Jekyll websites using
JekyllCommander. See the README for more details on how to use JekyllCommander.
-
β Git
-
β Chocolatey
- For Choco packages
choco packandchoco push, use the official Choco Docker image: https://github.com/chocolatey/choco-docker. You can build the.nuspecfile with Nupsforge and then use the Choco Docker image to pack and deploy. -
Note! Chocolatey is not officially supported on Linux, but it can be run through Mono.
-
Note! Chocolatey can be compiled to run on Mono but requires special configuration.
- For Choco packages
-
β NuGet
- NuGet 6.x is executed through Mono and can be called using the default
nugetexecutable.
- NuGet 6.x is executed through Mono and can be called using the default
-
β Codecov
-
β curl
-
β wget
-
β Ruby
-
β RubyGems
-
- Testing framework for PowerShell.
-
- PowerShell script analyzer.
-
- PowerShell YAML parser.
-
β ColorConsole
- Colorful console output using ANSI escape sequences with the default PowerShell console color palette.
-
β Tadpol
- Progress bars, loaders, and spinners generator.
-
β ShellDock
- Simple runspace executor with progress indicator.
-
β Quicklog
- Console logger with color support.
-
β Nupsforge
- NuGet package generator supporting: psgallery, chocolatey, proget (psgallery, chocolatey), gitlab packages, github packages.
-
β Psmpacker
- Build folder generator.
-
β CSVerify
- Code verification via
VERIFICATION.txt.
- Code verification via
-
- Git semantic versioning generator.
-
β Phwriter
- Generate Linux man pages for PowerShell cmdlets/functions.
-
[WIP] GemCommander
- Build and deploy RubyGems packages.
-
[WIP] JekyllCommander
- Build and deploy Jekyll websites.
-
β PowerShell.profile.ps1
- Custom PowerShell profile displaying image information.
- Imports modules and functions from the
./includesfolder.
Clone and run docker build -t phellams-automator -f phellams-automator.dockerfile . to build the image.
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 #| jqor alternatively, use the local build script:
# Windows
./phellams-automator-local-builder.ps1 -buildMode Base
# linux
sudo pwsh -c ./phellams-automator-local-builder.ps1 -buildMode BaseLocal builds are tagged with
:localbuild
Default shell is
pwshand will output the container information.
docker run --rm phellams-automator# 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-automatorOr, 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# 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).Versiondocker 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'- Add Ruby support to allow building of jekyll websites
- Add RubyGems support - required dependencies
- Add Jekyll support
- Add toml support with ptoml, and linux toml support
- 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
- use mono to attempt to run choco executable
- opted to use mono docker image to run choco builds and deploy does support all but for build and deploy choco packages to chocolatey is sufficent.
- Start porting binaries to Debian bins 13 slim and test
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.