Coder Social home page Coder Social logo

pavlo-oliinyk / octopusprojectbuilder Goto Github PK

View Code? Open in Web Editor NEW

This project forked from suremaker/octopusprojectbuilder

0.0 2.0 0.0 1.87 MB

Source control based Octopus configuration

License: BSD 2-Clause "Simplified" License

C# 99.08% PowerShell 0.92%

octopusprojectbuilder's Introduction

Octopus Project Builder

Build status

A project providing an ability to configure Octopus projects from source controlled text files (like yaml).

It is conceptually based on Jenkins Job Builder which I have found to be a great utility tool to work with Jenkins.

Using the Octopus Project Builder, together with source control system like git, gives the following benefits:

  • change history,
  • ability to use the previous version of configuration,
  • ability to create a review process before applying changes,
  • configuration editing, like extracting variables to library variable sets, or applying bulk changes to many projects.

Build

To build project, execute a following command from Powershell: PS> .\build.ps1

Yaml configuration manual

To see the yaml configuration manual, please take a look at Configuration Manual

Supported Octopus resource configuration

Octopus resource configuration templating

OctopusProjectBuilder allows template definition for most repetative configuration sections like:

It is possible to create parameterized templates with ability to parameterize any properties of string type. It is also possible to use templates for lower configuration sections in template of higher configuration sections. For example The Project template can use Step templates that can be composed from Action templates.

For more information, please take a look at Template manual.

OctopusProjectBuilder.Console.exe usage

The OctopusProjectBuilder.Console.exe requires following paramters:

Parameter Description
a:action Action to perform: Upload, Download, CleanupConfig
d:definitions Definitions directory
k:octopusApiKey Octopus API key
u:octopusUrl Octopus Url

The download action allows to download the current Octopus configuration to the target directory, the upload action allows to apply the yaml configuration on Octopus server, while the cleanupConfig action allows to rewrite the configuration, and it is helpful to reorder nodes, reformats parameters or remove the entries with default values.

Limitations

Sensitive variables

OctopusProjectBuilder.Console.exe is not able to download value of sensitive variables or parameters. The downloaded sensitive variables will have IsSensitive flag set to true, but variable will be null.

If user wants to define a sensitive variable in yaml, it is possible to specify IsSensitive:true, but the Value property will have to hold plain text value. When OctopusProjectBuilder.Console.exe uploads it, it would be kept in Octopus in encrypted format. Currently, the only possible workaround is to define a Library Variable Set with credentials in Octopus, and refer to it in the project:

Projects:
- Name: My Project
  IncludedLibraryVariableSetRefs:
  - My credentials
  # ...
  Variables:
  - Name: MyPassword
    Value: #{Credentials_my_password}

Examples

To see the example configuration, please browse the examples project directory.

octopusprojectbuilder's People

Contributors

suremaker avatar williamlord avatar

Watchers

James Cloos avatar Pavlo Oliinyk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.