Deplay a specific step


I know that I can schedule a deployment but how can I schedule/delay a specific step?
Here is my scenario:

  • I need to send some technical release note on D-1
  • Then I would like to launch my backups at 6AM (this is the task to schedule)
  • Then I wait for a manual intervention to continue the rest of my release (already possible)

Hi Benjamin,

Thanks for getting in touch! Could you share me the current steps of your deployment process (the names and order should do), and tell me which you’d like to run on your D-1 scheduled deployment, and which on a regular deployment? This will help me give you a proper answer.




Here is my scenario (a bit simplified).

So I trigger the release on D-1 with the following steps:

  • Send an email to say that the release has been triggered
  • Build a release note based on jira and send it by email
  • Wait!

On D day 6AM:

  • Perform the backups of my DB
  • Perform the backups of my FileSystem
  • Manual task to wait the releaser
  • around 7AM when I begin, I accept this manual task
  • Perform the prerelease steps
  • Activate the App_Offline
  • Deploy my packages
  • Disactivate the App_Offline
  • Perform my post-release steps
  • Manual task to test the release
  • Send an email to say that the release is done



Hi Benjamin,

Thanks for the detailed steps! Unfortunately its not exactly possible to schedule specific step on a deployment process. What you could do is have 2 separate projects:

Project 1: This one will send the D -1 email and will notify that tomorrow at 6am, Project 2 will be triggered with the release version x.x.x (you can calculate this value based on Project 2’s last release number). This Project’s deployment could be scheduled

Project 2: This one will be scheduled to start with the backups at 6am, wait for the releaser, and then go on with the rest.

I know Its not perfect, but it might do the job.



Hi again,

I have found another workaround: using a powershell script to do this wait. I didn’t have test yet if I didn’t have a timeout from octopus but if not it will do the trick:

$today = (get-date)
$futureTime = New-Object System.DateTime $today.Year, $today.Month, $today.Day+1, 6, 0, 0

Write-Host "Waiting"
Start-Sleep-Until -future_time $futureTime
Write-Host "Done at " . (get-date)