-
Notifications
You must be signed in to change notification settings - Fork 0
/
make-release.ps1
40 lines (30 loc) · 996 Bytes
/
make-release.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
param(
[parameter(Mandatory = $true)]
[string] $Version
)
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
Write-Host "Checking for sanity."
git diff-index --quiet HEAD --
$clean = $LASTEXITCODE -eq 0
if (-not $clean)
{
throw "Repository is dirty, will not continue."
}
Write-Host "Searching for the $Version release."
$hashUrl = "https://github.com/gerardog/gsudo/releases/download/v$Version/gsudo.v$Version.zip.sha256"
$response = Invoke-WebRequest $hashUrl -UseBasicParsing
$downloadSuccess = $response.StatusCode -eq "200"
if (-not $downloadSuccess)
{
throw "Version was not found."
}
$hash = [System.Text.Encoding]::UTF8.GetString($response.Content).Trim()
$release = @{
Version = $Version
Hash = $hash
} | ConvertTo-Json
$release | Out-File -FilePath "./release.json"
Write-Host "Release file updated."
Write-Host "Creating git commit and tag."
git commit -a -m "Upstream release $Version."
git tag $Version