Git Product home page Git Product logo

calamari-1's Introduction

Calamari is the command-line tool invoked by Tentacle during a deployment. It knows how to extract and install NuGet packages, run the Deploy.ps1 etc. conventions, modify configuration files, and all the other things that happen during a deployment.

Building

You will need the .NET SDK 5.0, downloadable from https://dotnet.microsoft.com/download

Run Build-Local.ps1 or Build-Local.sh to build the solution locally.

When the solution is built, several new Calamari nuget packages are created in the artifacts directory.

For Octopus Developers:

The Build-Local scripts will also copy the nuget packages to the LocalPackages folder which can be found in the same parent folder as the Calamari repo. If the Octopus Server repo exists in the same parent folder, Build-Local will also update the Octopus.Server.csproj to reference the Calamari version produced by the build. This means that you can simply rebuild Server locally to test the new version of Calamari.

folder structure example:

dev\
   Calamari\
   LocalPackages\ 
OctopusDeploy\

Usage

Octopus Server 2020.3+: Using a custom version of Calamari may not work

Calamari is currently being filleted into Sashimi. Due to the architectural changes involved in this transformation, using a custom version of Calamari with Octopus Server version 2020.3+ may not work. Please get in touch with [email protected] if this affects you, to help us make decisions about how we can support custom implementations of deployment steps.

To use your own Calamari package with an Octopus 3.0 server, run the following commands

Octopus.Server.exe service --instance <instance> --stop --nologo --console
Octopus.Server.exe configure --instance <instance> --customBundledPackageDirectory=<directory> --nologo --console
Octopus.Server.exe service --instance <instance> --start --nologo --console

where <directory> is the directory containing the Calamari.*.nupkg files. If your server is setup as the default instance, you may ommit the --instance <instance> parameter.

This will add the following setting to your Octopus Server configuration file:

  <set key="Octopus.Deployment.CustomBundledPackageDirectory">C:\GitHub\Calamari\built-packages</set>

The exe and configuration file can normally be found at:

C:\Octopus\OctopusServer\OctopusServer.config

If you want to revert to the bundled package, run the following commands

Octopus.Server.exe service --instance <instance> --stop --nologo --console
Octopus.Server.exe configure --instance <instance> --customBundledPackageDirectory= --nologo --console
Octopus.Server.exe service --instance <instance> --start --nologo --console

** Ensure you update your build to the latest Calamari or revert to the bundled package when you upgrade Octopus Server **

Releasing

After you finish merging to master to tag the Calamari NuGet package:

Firstly, find out what the latest tag is. There are two ways to do this:

  • On your terminal, checkout master and git pull for good measure
  • Run git tag and scroll to the bottom of the list to get the last known tag

Alternatively,

  • Check the last build on master as it will be pre-release version of the next <Major>.<Minor>.<Patch> version

Finally, tag and push the new release

  • Patch, Minor or Major Version the tag according to <Major>.<Minor>.<Patch>
  • git push --tag

This will trigger our build server to build and publish a new version to feedz.io which can be seen here https://feedz.io/org/octopus-deploy/repository/dependencies/packages/Calamari.

calamari-1's People

Contributors

mcasperson avatar mjrichardson avatar zentron avatar droyad avatar hnrkndrssn avatar tothegills avatar benpearce1 avatar marksiedle avatar shaunmarx avatar pawelpabich avatar slewis74 avatar corey-underdown avatar matt-richardson avatar michaelnoonan avatar paulstovell avatar mjhilton avatar thedewi avatar xtreampb avatar flin-8 avatar geofflamrock avatar tw17 avatar gb-8 avatar distantcam avatar scme0 avatar andrewabest avatar isaaccalligeros95 avatar nickjosevski avatar desruc avatar raynhamdev avatar missedthemark 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.