Octopus Deploy Community-Schritte sind nur Powershell-Skripte mit Variablen. Sie können die Powershell bearbeiten, um eine beliebige Variable für den Pfad "Start in" einzurichten und diese an die geplante Aufgabe zu übergeben. Ich kann dir ein Beispiel geben, dass du eins brauchst.
aktualisiert
Nach Genauigkeit für die Aufgabe am Posh Skript suchen, denke ich, eine bessere Option einen Parameter für die XML-Datei hinzuzufügen wäre, dass die Task-Parameter und stellen Sie legt fest, dass in Ihrem Octopus Einsatz Schritte. Das gibt Ihnen die größte Flexibilität, falls Sie neben dem Parameter "Start in" weitere Parameter angeben müssen.
Update 2
Also schrieb ich einen benutzerdefinierten Schritt zu tun, was man wollte, dann an der Gemeinschaft Futter sah, mich dumm. Es gibt bereits eine Stemp-Vorlage zum Erstellen einer geplanten Aufgabe aus einer XML-Datei. Mit dem XML können Sie das Arbeitsverzeichnis festlegen. Die Schrittvorlage heißt "Geplante Aufgaben aus XML erstellen" und Sie finden sie unter http://library.octopusdeploy.com/step-templates/26c779af-4cce-447e-98bb-4741c25e0b3c/actiontemplate-create-scheduled-tasks-from-xml.
Außerdem ist hier, wo ich mit dem benutzerdefinierten Schritt gehen wurde, es ist nur Powershell:
$ErrorActionPreference = "Stop";
Set-StrictMode -Version "Latest";
function New-ScheduledTask {
param (
[Parameter(Mandatory = $true)][hashtable] $octopusParameters
)
$arguments = @{
TaskName = $octopusParameters['TaskName']
User = $octopusParameters['RunAsUser']
}
if ($octopusParameters['RunAsPassword']) {
$arguments.Password = $runAsPassword
}
if ($octopusParameters.ContainsKey('RunWithElevatedPermissions')) {
if ([boolean]::Parse($octopusParameters['RunWithElevatedPermissions'])) {
$arguments.RunLevel = 'Highest'
}
}
switch ($octopusParameters['Schedule']) {
'Once' {
$triggerArguments.Once = $true
$triggerArguments.At = $runAt
}
'Daily' {
$triggerArguments.Daily = $true
$triggerArguments.At = $runAt
if ($interval) {
$triggerArguments.DaysInterval = $octopusParameters['Interval']
}
}
'Weekly' {
$triggerArguments.Weekly = $true
$triggerArguments.At = $runAt
if ($interval) {
$triggerArguments.WeeksInterval = $octopusParameters['Interval']
}
}
'Startup' {
$triggerArguments.AtStartup = $true
}
'Logon' {
$triggerArguments.AtLogOn = $true
}
}
$actionArguments = @{
Execute = $octopusParameters['Executable']
Argument = $octopusParameters['Arguments']
WorkingDirectory = $octopusParameters['WorkingDirectory']
}
$arguments.Action = New-ScheduledTaskAction @actionArguments
$triggerArguments = @{
TaskName = $taskName
User = $runAsUser
}
$arguments.Trigger = New-ScheduledTaskTrigger @triggerArguments
Write-Output "Creating Scheduled Task - $taskName"
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction:SilentlyContinue
Register-ScheduledTask @arguments | Out-Null
Write-Output "Successfully Created $taskName"
}
# only execute the step if it's called from octopus deploy,
# and skip it if we're runnning inside a Pester test
if (Test-Path -Path "Variable:octopusParameters") {
New-ScheduledTask $octopusParameters
}
wollte sagen „Start in (optional):“ – ProgSky
Octopus Antwort: Ich hatte diese Frage nicht zu gefragt Vor langer Zeit wurden die Schrittvorlagen leider meist von der Community erstellt und verwaltet. Es sieht so aus, als wäre es die beste Option, eine Kopie der Schrittvorlage zu erstellen und/script in einem eigenen Abschnitt hinzuzufügen, um das Feld "Start in" zu bearbeiten. Leider gibt es momentan keine anderen Optionen. Wir sind sehr auf den Beitrag der Gemeinschaft mit unseren Schrittvorlagen angewiesen. Wenn Sie dies tun, würden wir gerne eine PR mit Ihrer Änderung sehen. Der folgende Link enthält Informationen darüber, wie das Senden an unsere Bibliothek funktioniert: https://github.com/OctopusDeploy/Library – ProgSky