Skip to content

Commit 0703cee

Browse files
authored
Merge pull request #403 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents c818a32 + 1fc6f75 commit 0703cee

File tree

3 files changed

+59
-3
lines changed

3 files changed

+59
-3
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action
2+
# More GitHub Actions for Azure: https://github.com/Azure/actions
3+
4+
name: Build and deploy Powershell project to Azure Function App - clouduptest
5+
6+
on:
7+
push:
8+
branches:
9+
- dev
10+
workflow_dispatch:
11+
12+
env:
13+
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
14+
15+
jobs:
16+
deploy:
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
- name: 'Checkout GitHub Action'
21+
uses: actions/checkout@v4
22+
23+
- name: 'Run Azure Functions Action'
24+
uses: Azure/functions-action@v1
25+
id: fa
26+
with:
27+
app-name: 'clouduptest'
28+
slot-name: 'Production'
29+
package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
30+
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_9B9E8B9A9BBE446188BCA9F126A1B646 }}
31+
sku: 'flexconsumption'
32+

Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ function Add-CIPPScheduledTask {
1919
[Parameter(Mandatory = $true, ParameterSetName = 'RunNow')]
2020
[string]$RowKey,
2121

22+
[Parameter(Mandatory = $false, ParameterSetName = 'Default')]
23+
[string]$DesiredStartTime = $null,
24+
2225
[Parameter(Mandatory = $false, ParameterSetName = 'Default')]
2326
[Parameter(Mandatory = $false, ParameterSetName = 'RunNow')]
2427
$Headers
@@ -119,8 +122,25 @@ function Add-CIPPScheduledTask {
119122
$task.Recurrence.value
120123
}
121124

122-
if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) {
123-
$task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds
125+
if ($DesiredStartTime) {
126+
try {
127+
# Parse the epoch time
128+
$epochSeconds = [int64]$DesiredStartTime
129+
# Set ScheduledTime to the desired time
130+
$task.ScheduledTime = $epochSeconds
131+
}
132+
catch {
133+
Write-Warning "Failed to parse DesiredStartTime: $DesiredStartTime. Using provided ScheduledTime."
134+
# Fall back to default
135+
if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) {
136+
$task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds
137+
}
138+
}
139+
} else {
140+
# No DesiredStartTime - use current behavior (immediate execution)
141+
if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) {
142+
$task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds
143+
}
124144
}
125145
$excludedTenants = if ($task.excludedTenants.value) {
126146
$task.excludedTenants.value -join ','
@@ -166,6 +186,10 @@ function Add-CIPPScheduledTask {
166186
Hidden = [bool]$Hidden
167187
Results = 'Planned'
168188
}
189+
# Always store DesiredStartTime if provided
190+
if ($DesiredStartTime) {
191+
$entity['DesiredStartTime'] = [string]$DesiredStartTime
192+
}
169193

170194
# Store the original tenant filter for group expansion during execution
171195
if ($originalTenantFilter -is [PSCustomObject] -and $originalTenantFilter.type -eq 'Group') {

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function Invoke-AddScheduledItem {
3131
$Result = "Error scheduling task: $($_.Exception.Message)"
3232
}
3333
} else {
34-
$Result = Add-CIPPScheduledTask -Task $Request.Body -Headers $Request.Headers -hidden $hidden -DisallowDuplicateName $Request.Query.DisallowDuplicateName
34+
$Result = Add-CIPPScheduledTask -Task $Request.Body -Headers $Request.Headers -hidden $hidden -DisallowDuplicateName $Request.Query.DisallowDuplicateName -DesiredStartTime $Request.Body.DesiredStartTime
3535
Write-LogMessage -headers $Request.Headers -API $APINAME -message $Result -Sev 'Info'
3636
}
3737
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{

0 commit comments

Comments
 (0)