All Projects → RamblingCookieMonster → Psdeploy

RamblingCookieMonster / Psdeploy

Licence: mit
Simple PowerShell based deployments

Programming Languages

powershell
5483 projects

Projects that are alternatives of or similar to Psdeploy

Buildhelpers
Helper functions for PowerShell CI/CD scenarios
Stars: ✭ 174 (-42.38%)
Mutual labels:  build, build-automation, continuous-deployment, ci-cd
cloud-s4-sdk-pipeline
The Cloud SDK pipeline uses the Cloud SDK continuous delivery server for building, checking, and deploying extension applications. Projects based on the SAP Cloud SDK archetype will automatically use this pipeline.
Stars: ✭ 65 (-78.48%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd
Build
Netlify Build runs the build command, Build Plugins and bundles Netlify Functions.
Stars: ✭ 135 (-55.3%)
Mutual labels:  build, continuous-delivery, continuous-deployment
cloud-s4-sdk-pipeline-docker
The Cloud SDK continuous delivery infrastructure makes heavy use of docker images. This are the docker sources of these images.
Stars: ✭ 13 (-95.7%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd
Xrm Ci Framework
xRM CI Framework provides you with the tools automate the build and deployment of your CRM Solution. Using the framework to implement a fully automated DevOps pipeline will allow you to deploy more frequently with added consistency and quality.
Stars: ✭ 172 (-43.05%)
Mutual labels:  build-automation, continuous-delivery, continuous-deployment
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (+130.13%)
Mutual labels:  build, build-automation, continuous-deployment
maestro
Faster CI/CD for multi-artifact projects
Stars: ✭ 13 (-95.7%)
Mutual labels:  continuous-delivery, build-automation, continuous-deployment
build-plugin-template
Template repository to create new Netlify Build plugins.
Stars: ✭ 26 (-91.39%)
Mutual labels:  build, continuous-delivery, continuous-deployment
Nginx-builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 143 (-52.65%)
Mutual labels:  build, build-automation, ci-cd
variants
A command-line tool to setup deployment variants for iOS and Android, alongside a working CI/CD setup.
Stars: ✭ 23 (-92.38%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd
Dyn365 Ce Vsts Tasks
VSTS Extension for Dynamics 365 Customer Engagement
Stars: ✭ 94 (-68.87%)
Mutual labels:  build-automation, continuous-delivery, continuous-deployment
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (-87.75%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd
Dyn365 Ce Devops
DevOps for Dynamics 365 Customer Engagement (CE) is becoming a popular topic. The goal of this project is to help Dynamics 365 CE solution builders understand and accelerate their implementation of DevOps practices with Dynamics CE and VSTS.
Stars: ✭ 82 (-72.85%)
Mutual labels:  build-automation, continuous-delivery, continuous-deployment
Nginx Builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 123 (-59.27%)
Mutual labels:  build, build-automation, ci-cd
Drone
Drone is a Container-Native, Continuous Delivery Platform
Stars: ✭ 24,287 (+7942.05%)
Mutual labels:  build-automation, continuous-delivery, ci-cd
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (-43.71%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd
Git Push Deploy
Simple Automated CI/CD Pipeline for GitHub and GitLab Projects
Stars: ✭ 21 (-93.05%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd
Origin
Conformance test suite for OpenShift
Stars: ✭ 8,046 (+2564.24%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd
Kotsu
✨ Clean, opinionated foundation for new projects — to boldly go where no man has gone before
Stars: ✭ 48 (-84.11%)
Mutual labels:  build, continuous-delivery, continuous-deployment
www.go.cd
Github pages repo
Stars: ✭ 39 (-87.09%)
Mutual labels:  continuous-delivery, continuous-deployment, ci-cd

Build status Documentation Status

PSDeploy

PSDeploy is a quick and dirty module to simplify PowerShell based deployments.

The idea is that you write a *.psdeploy.ps1 deployment configuration with sources and targets, and PSDeploy will deploy these.

Suggestions, pull requests, and other contributions would be more than welcome! See the contributing guidlines for more info.

Deployments

Invoking PSDeploy is very similar to running Invoke-Pester. Here's an example, Some.PSDeploy.ps1

Deploy ActiveDirectory1 {                        # Deployment name. This needs to be unique. Call it whatever you want
    By Filesystem {                              # Deployment type. See Get-PSDeploymentType
        FromSource 'Tasks\AD\Some-ADScript.ps1', # One or more sources to deploy. Absolute, or relative to deployment.yml parent
                   'Tasks\AllOfThisDirectory'
        To '\\contoso.org\share$\Tasks'          # One or more destinations to deploy the sources to
        Tagged Prod                              # One or more tags you can use to restrict deployments or queries
        WithOptions @{
            Mirror = $True                       # If the source is a folder, triggers robocopy purge. Danger
        }
    }
}

Let's pretend Some.PSDeploy.ps1 lives in C:\Git\Misc\Deployments. Here's what happens when we invoke a deployment:

Invoke-PSDeploy -Path C:\Git\Misc
  • We search for all *.*Deploy.ps1 or *PSDeploy.ps1 files under C:\Git\Misc, and find Some.PSDeploy.ps1. In this case, we have two resulting deployments, Some-ADScript.ps1, and AllOfThisDirectory
  • We check the deployment type. Filesystem.
  • We invoke the script associated with Filesystem Deployments, passing in the two deployments
  • Relative paths are resolved by joining paths with C:\Git\Misc
  • C:\Git\Misc\Tasks\AD\Some-ADScript.ps1 is copied to \contoso.org\share$\Tasks with Copy-Item
  • C:\Git\Misc\Tasks\AD\Tasks\AllOfThisDirectory is copied to \contoso.org\share$\Tasks with robocopy, using /XO /E /PURGE (we only purge if mirror is true)

Initial PSDeploy setup

# One time setup
    # Download the repository
    # Unblock the zip
    # Extract the PSDeploy folder to a module path (e.g. $env:USERPROFILE\Documents\WindowsPowerShell\Modules\)

    #Simple alternative, if you have PowerShell 5, or the PowerShellGet module:
        Install-Module PSDeploy

# Import the module.
    Import-Module PSDeploy    # Alternatively, Import-Module \\Path\To\PSDeploy

# Get commands in the module
    Get-Command -Module PSDeploy

# Get help for the module and a command
    Get-Help about_PSDeploy
    Get-Help Invoke-PSDeploy -full

More Information

The PSDeploy docs will include more information, including:

  • Examples for different DeploymentTypes - will try to keep these in sync with new types when they are added
  • Illustrations of features like tags and dependencies
  • Common scenarios (todo)
  • How to write new PSDeploy DeploymentTypes
  • Details on the PSDeploy Configuration Files

The blog posts (one, two), and three will become out of date over time, but may include helpful details

Notes

Thanks go to:

  • Scott Muc for PowerYaml, which we borrow for YAML parsing
  • Boe Prox for Get-FileHash, which we borrow for downlevel hash support in the deployment scripts
  • Michael Greene, for the idea of using a DSL similar to Pester
  • Folks writing new PSDeploy deployment types and contributing in other ways - thank you!
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].