Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mrhockeymonkey/a0e73029b3ae1cfc1ae2f47969d3ef09 to your computer and use it in GitHub Desktop.
Save mrhockeymonkey/a0e73029b3ae1cfc1ae2f47969d3ef09 to your computer and use it in GitHub Desktop.
Trigger Jenkins build via API (with params)
$ApiUser =
$ApiToken =
$BuildTriggerToken =
#dirty hack to add trust for a cert to WinPE
& reg.exe IMPORT Z:\Control\Tools\JenkinsSelfSigned.reg
#create the required header
$bytes = [System.Text.Encoding]::ASCII.GetBytes("${ApiUser}:${ApiToken}")
$base64 = [System.Convert]::ToBase64String($bytes)
$Headers = @{Authorization = "Basic $base64"}
# Get a jenkins crumb, see: https://wiki.jenkins.io/display/JENKINS/Remote+access+API#RemoteaccessAPI-CSRFProtection
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$JenkinsCrumb = Invoke-RestMethod -Uri 'https://jenkins/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)' -Headers $Headers
$Headers.Add($(($JenkinsCrumb -split ':')[0]),$(($JenkinsCrumb -split ':')[1]))
#Invoke a build
Invoke-RestMethod -Method Post -Uri "https://jenkins/job/team/job/WindowsBuild/buildWithParameters?token=$BuildTriggerToken&BUILD_HOSTNAME=$($Script:ThisNode.Name)&ILO_IP=$($Script:IloIpAddress)" -Headers $Headers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment