Compare commits
1 Commits
2.0.17
...
v1.0.0-alp
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bd9d549607 |
52
Jenkins/release.ps1
Normal file
52
Jenkins/release.ps1
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
param([string] $ApiBase, [string]$tagName, [string]$authinfo, [string[]] $assetPaths)
|
||||||
|
Add-Type -AssemblyName "System.Web"
|
||||||
|
|
||||||
|
$headers = @{
|
||||||
|
Authorization = "Basic " + [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($authinfo))
|
||||||
|
Accept = "application/vnd.github.v3+json"
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Write-Output("Checking if release with tag " + $tagName + " already exists...")
|
||||||
|
$release = Invoke-RestMethod -Uri ($ApiBase+"releases/tags/$tagName") -Method "GET" -Headers $headers
|
||||||
|
Write-Output(" Using existing release " + $release.id + " at " + $release.html_url)
|
||||||
|
} catch {
|
||||||
|
Write-Output(" Doesn't exist")
|
||||||
|
$rel_arg = @{
|
||||||
|
tag_name=$tagName
|
||||||
|
name="Generated $tagName"
|
||||||
|
body=""
|
||||||
|
draft=$FALSE
|
||||||
|
prerelease=$tagName.Contains("alpha") -or $tagName.Contains("beta")
|
||||||
|
}
|
||||||
|
Write-Output("Creating new release " + $tagName + "...")
|
||||||
|
$release = Invoke-RestMethod -Uri ($ApiBase+"releases") -Method "POST" -Headers $headers -Body (ConvertTo-Json($rel_arg))
|
||||||
|
Write-Output(" Created new release " + $tagName + " at " + $release.html_url)
|
||||||
|
}
|
||||||
|
|
||||||
|
$assetsApiBase = $release.assets_url
|
||||||
|
Write-Output("Checking for existing assets...")
|
||||||
|
$existingAssets = Invoke-RestMethod -Uri ($assetsApiBase) -Method "GET" -Headers $headers
|
||||||
|
$assetLabels = ($assetPaths | ForEach-Object {[System.IO.Path]::GetFileName($_)})
|
||||||
|
foreach ($asset in $existingAssets) {
|
||||||
|
if ($assetLabels -contains $asset.name) {
|
||||||
|
$uri = $asset.url
|
||||||
|
Write-Output(" Deleting old asset " + $asset.name + " (id " + $asset.id + "); URI=" + $uri)
|
||||||
|
$result = Invoke-RestMethod -Uri $uri -Method "DELETE" -Headers $headers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Output("Uploading assets...")
|
||||||
|
$uploadUrl = $release.upload_url.Substring(0, $release.upload_url.LastIndexOf('{'))
|
||||||
|
foreach ($asset in $assetPaths) {
|
||||||
|
$assetName = [System.IO.Path]::GetFileName($asset)
|
||||||
|
$assetType = [System.Web.MimeMapping]::GetMimeMapping($asset)
|
||||||
|
$assetData = [System.IO.File]::ReadAllBytes($asset)
|
||||||
|
$headerExtra = $headers + @{
|
||||||
|
"Content-Type" = $assetType
|
||||||
|
Name = $assetName
|
||||||
|
}
|
||||||
|
$uri = $uploadUrl + "?name=" + $assetName
|
||||||
|
Write-Output(" Uploading " + $asset + " as " + $assetType + "; URI=" + $uri)
|
||||||
|
$result = Invoke-RestMethod -Uri $uri -Method "POST" -Headers $headerExtra -Body $assetData
|
||||||
|
Write-Output(" ID=" + $result.id + ", found at=" + $result.browser_download_url)
|
||||||
|
}
|
10
Jenkinsfile
vendored
10
Jenkinsfile
vendored
@@ -54,4 +54,14 @@ node {
|
|||||||
|
|
||||||
archiveArtifacts artifacts: 'bin/x64/Release/Torch*', caseSensitive: false, fingerprint: true, onlyIfSuccessful: true
|
archiveArtifacts artifacts: 'bin/x64/Release/Torch*', caseSensitive: false, fingerprint: true, onlyIfSuccessful: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gitVersion = bat(returnStdout: true, script: "@git describe --tags").trim()
|
||||||
|
gitSimpleVersion = bat(returnStdout: true, script: "@git describe --tags --abbrev=0").trim()
|
||||||
|
if (gitVersion == gitSimpleVersion) {
|
||||||
|
stage('Release') {
|
||||||
|
withCredentials([usernamePassword(credentialsId: 'e771beac-b3ee-4bc9-82b7-40a6d426d508', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
|
||||||
|
powershell "./Jenkins/release.ps1 \"https://api.github.com/repos/TorchAPI/Torch/\" \"$gitSimpleVersion\" \"$USERNAME:$PASSWORD\" @(\"bin/torch-server.zip\", \"bin/torch-client.zip\")"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user