Skip steps when using api to create and deploy a release

Hi OctoAdmins,

I’ve been piloting Octopus at a a client site. We have a requirement to auto deploy components after a build or on an hourly basis.

I know about Octo.exe and this looks like the tool for the job. I have one requirement that the release only contain the step that has been built. Currently, a release consists of around 6 steps (6 different components) and the client prefers this as they can simulate a “one click” deployment scheme, but the client also wants to report what components (version) have been auto deployed to a DEV environment when creating a release for other environments: TEST, UAT and PROD

On the web interface it is possible to skip steps for a release, but this functionality does not appear to be provided by default through Octo.exe

I have modified Octo.exe to only “include” SelectedPackages for a Release, but the server is returning an error:

The remote server returned an error: (400) Bad Request. {
“errors”: [
“Please select specify a version for the following packages: …Package GUIDS…”
]
}
Where the guids represent steps not in the selected packages for the release.

Is there a way to simulate skipping multiple steps when creating a release through the API?

My vital stats returned from the API are:
“Application”: “Octopus”,
“Version”: “1.0.30.1340”,
“ApiVersion”: “1.0.0”,
“OperatingSystem”: “Microsoft Windows NT 6.1.7600.0”,

I really love using this product and hope you can help to provide a solution to simulate skipping multiple steps when creating a release through the API.

Best regards,
Brett.

Ok, it’s the deployment where you can skip steps. Problem solved.

Hi,

I would also like to skip steps during deployment via the API, though via TeamCity would be better. It seems like Brett achieved skipping steps via the API, however he failed to put the solution in his post.

Thanks,
Simon

Hi Simon,

You can skip steps when creating the release, not at deployment time. It requires mofiying Octo.exe, but I did not complete this in the end.

I realised creating a release just for TeamCity to deploy the diff of changes is counter intuitive, as you then have releases in Octopus that do not contain all release items. Choosing to promote these releases may cause versioning issues with components.

If you have a licenced version of octopus and a version that supports Project groups
Then I would have a TeamCity group for your Project that is used for continuous delivery into the “development” environment.

And the other more structured group with a clone of that project to create releases from validated components and this one then moves through all other environments.

It’s nice to use groups here as you can force the TeamCity group to only allow deployments to the environments you want to cater for.

This does create manual overhead of potentially having to keep the two projects in sync.

Regards,
Brett.

Hi Brett,

Thanks for your speedy response. I should have provided some detail as to why I am trying to skip steps. I have a single project that uses the first 4 steps to stage the deployment in our environment and the very last step stops the service, relinks to the new stage folder and starts the service (i.e. releases). Ideally I would like to be able to have two TC Build Configurations, the first stages the release skipping the 5th step and the second releases the release by skipping the first 4 steps.

Whilst our ‘nightly build’ can stage and release without intervention, I would like to retain the manual step in our ‘release build’ of identifying a build to stage and releasing the build when I’m happy with the staging.

I considered a second project just to do the release, however as there are no nuget steps the project does not work. I would be forced to create a dummy nuget package to be able to define a release project.

Any thoughts or advice would be gratefully received.

Thanks,
Simon

Hi folks,

maybe a follow up to this discussion from my side as this has become an issue for me with the newly introduced FTP deployment. As the FTP deployment steps are only run in a dedicated environment not served by the automated deployment (only relevant for production deployment) the remote creation of the deployment via octo.exe fails with the error message Brett provided (and the GUID values of the FTP steps inside the error message).
I’m using the packaged octo.exe with version 1.1.17.62 and the newest octopus deploy 1.5.1.1652.

Maybe as additional information the FTP deployment steps only include NuGet packages that are already available for other deployment steps that are part of the release.

Hope somebody can have a look at the issue.

Kind regards
Joscha

Hi,

We’ll make sure that Octo.exe can support skipping steps when doing a deploy in the next release.

Paul

Any update on this Paul?

Hi Marlon,

As you can see in the following documentation http://docs.octopusdeploy.com/display/OD/Deploying+releases
^ --skip=step name is part of octo.exe --create-release and --deploy-release

Vanessa