All Projects → JustinGrote → Press

JustinGrote / Press

Licence: MIT license
A continuous developement environment for Powershell Modules either via local development or leveraging GitHub and Github Actions

Programming Languages

powershell
5483 projects

Projects that are alternatives of or similar to Press

Github Actions Golang
GitHub Actions as CI for Go
Stars: ✭ 672 (+3100%)
Mutual labels:  modules, ci, cd
Pypyr
pypyr task-runner cli & api for automation pipelines. Automate anything by combining commands, different scripts in different languages & applications into one pipeline process.
Stars: ✭ 173 (+723.81%)
Mutual labels:  ci, cd
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (+709.52%)
Mutual labels:  ci, cd
Rocket
Automated software delivery as fast and easy as possible 🚀
Stars: ✭ 217 (+933.33%)
Mutual labels:  ci, cd
Action Docker Layer Caching
🐳 Enable Docker layer caching in GitHub Actions
Stars: ✭ 160 (+661.9%)
Mutual labels:  ci, cd
Symfony Bootstrapped
⚡️ Symfony with tools
Stars: ✭ 160 (+661.9%)
Mutual labels:  ci, cd
Scripts
Scripts for use on Codeship Basic
Stars: ✭ 211 (+904.76%)
Mutual labels:  ci, cd
Kubectl
A Github action for kubectl, the Kubernetes CLI
Stars: ✭ 128 (+509.52%)
Mutual labels:  ci, cd
Flagsmith Api
Feature flagging and remote config service. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 223 (+961.9%)
Mutual labels:  ci, cd
Ansible Role Awx
Ansible Role - AWX
Stars: ✭ 228 (+985.71%)
Mutual labels:  ci, cd
Opendevops
CODO是一款为用户提供企业多混合云、一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台
Stars: ✭ 2,990 (+14138.1%)
Mutual labels:  ci, cd
Goploy
Deploy, CI/CD, Xterm, APP monitor, Crontab Manager.
Stars: ✭ 147 (+600%)
Mutual labels:  ci, cd
Gitlab Ci Local
Tired of pushing to test your .gitlab-ci.yml?
Stars: ✭ 134 (+538.1%)
Mutual labels:  ci, cd
Solo Ci
A lightweight CI/CD tool powered by Golang
Stars: ✭ 168 (+700%)
Mutual labels:  ci, cd
Gradle Nexus Staging Plugin
Automatize releasing Gradle projects to Maven Central.
Stars: ✭ 132 (+528.57%)
Mutual labels:  ci, cd
Jenkins Rest
Java client, built on top of jclouds, for working with Jenkins REST API
Stars: ✭ 201 (+857.14%)
Mutual labels:  ci, cd
Flint
Fast and configurable filesystem (file and directory names) linter
Stars: ✭ 115 (+447.62%)
Mutual labels:  ci, cd
Lastbackend
System for containerized apps management. From build to scaling.
Stars: ✭ 1,536 (+7214.29%)
Mutual labels:  ci, cd
Opensa
资产管理、资产采集、灰度发布、反向代理、批量任务、任务编排、计划任务、日志审计、权限管理、角色管理、部门管理、运维自动化
Stars: ✭ 220 (+947.62%)
Mutual labels:  ci, cd
Rok8s Scripts
Opinionated scripts for managing application deployment lifecycle in Kubernetes
Stars: ✭ 248 (+1080.95%)
Mutual labels:  ci, cd

Press Logo

Press is a continuous integration build system for PowerShell modules. It enables you to build, test, and deploy high quality modules using a highly configurable build engine that works out of the box but is completely customizable to your needs.

Configuring Press

Press using the PowerConfig configuration engine to manage settings.

Get-PressSetting will show you the default configuration values of the project. You can override these settings currently in two ways:

  1. Define an environment variable prefixed by PRESS_. For nested settings, separate each level with : or __ (as supported by your OS)
    Example: $ENV:PRESS_General__ModuleVersion = '3.2.1'
    Example: $ENV:PRESS_General__ModuleVersion = '3.2.1'
  2. Define a .config/Press.yml in your repository and override settings there.
    Example:
    General:
        ModuleVersion: 3.2.1
  3. [Advanced] Override the Get-PressSetting task with your custom PowerConfig

Press Commandments

Thou shalt:

  1. Structure with Public and Private folders to denote exported and non-exported functions
  2. Name public functions the same as their .ps1 file name. Note that you can have other "helper" functions in the same file that the public function references, as long as they are not named the same as the .ps1 file
  3. Not nest functions within other functions. It makes debugging and pester testing difficult, instead define private functions either in the Private folder, or helper functions in the same file as their associated Public function, with different names than the file.

See the project section for the roadmap

More to follow...

Workflows

Press supports the following workflows:

Local Git Development

You can use Press to automate the build, test and deploy settings for any Powershell module in a git repository. Press will use your commit messages to generate release notes, build zip and nupkg versions of your module. To publish a release, tag a commit with the version you want to release e.g. v2.0.3 and run the Deploy task.

GitHub Integrated

Press has tight integration with Github, including Github Actions, Releases, and Environments.

Here is what a typical workflow would look like:

  1. Start a new repository and enable Press. Your environment is now automatically at v0.0.1
  2. Create a feature branch 'myfeature' and add a commit. This commit is now at v0.0.2-myfeature0001
  3. Create a pull request to your main branch of your feature, it will automatically be checked and tested.
  4. Merge the feature request to your main branch and ensure the PR message has the feature emoji or feat:. Your main branch is now automatically at v0.0.2-beta0001 and a release has automatically been drafted for you in GitHub, and if enabled, will be made available on the Powershell Gallery
  5. Follow steps 2-4 again. Your main branch is now automatically at v0.0.2-beta0002 and the draft release has been updated with the latest release notes. If enabled, your beta version will automatically be made available on the Powershell Gallery
  6. Go the the release draft and click "Publish". Your project is now at v0.0.2 and your latest commit will be tagged as such, and a production version matching your release will be made available on the Powershell Gallery.

Origin

Press is a rewrite of PowerCD with some modern decisions:

  1. PS7+ Only for Building (built modules can still have lower compatability)
  2. Drop Azure Pipelines/Appveyor support and go all-in on Github Actions. Local packages.
  3. Support a Github development workflow via Github Pull Requests/Features and vscode
  4. Embrace devmoji but still support conventional commits
  5. Expand to github releases, changelog support, artifacts, etc.

Smart Actions

  1. Pester will be run against both Powershell 7 and Windows Powershell in isolated jobs unless the module manifest PowershellVersion is greater than or equal to 6.0.0.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].