pull/10238/merge
Rahul Somasundaram 4 years ago committed by GitHub
commit cf9b0c2ff3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,8 +1,12 @@
--- ---
version: 2 version: 2.1
orbs:
win: circleci/windows@2.2.0
azure-cli: circleci/azure-cli@1.0.0
jobs: jobs:
build: test:
working_directory: ~/helm.sh/helm working_directory: ~/helm.sh/helm
docker: docker:
- image: circleci/golang:1.17 - image: circleci/golang:1.17
@ -26,15 +30,89 @@ jobs:
- run: - run:
name: test name: test
command: make test-coverage command: make test-coverage
build:
working_directory: ~/helm.sh/helm
docker:
- image: circleci/golang:1.16
auth:
username: $DOCKER_USER
password: $DOCKER_PASS
environment:
GOCACHE: "/tmp/go/cache"
GOLANGCI_LINT_VERSION: "1.36.0"
steps:
- checkout
- deploy: - deploy:
name: deploy name: deploy
command: .circleci/deploy.sh command: .circleci/deploy.sh
- persist_to_workspace:
root: .
paths:
- _dist/windows-amd64/*
generate-windows-installer:
executor: win/default
steps:
- checkout
- attach_workspace:
at: 'C:\tmp\workspace'
- run:
name: Copy from Workspace
command: Copy-Item -Path "C:\tmp\workspace\_dist\*" -Destination "package\" -Recurse
- run:
name: install innosetup and build
command: Set-Location package; dir; .\build.ps1
- persist_to_workspace:
root: .
paths:
- ./package/Output/*
- store_artifacts:
path: ./package/Output/
upload-binary:
executor: azure-cli/default
steps:
- azure-cli/install
- attach_workspace:
at: '/tmp/workspace'
- run:
name: Upload binary
command: cd /tmp/workspace/package/Output; az storage blob upload-batch -s . -d "$AZURE_STORAGE_CONTAINER_NAME" --pattern 'helm-*' --connection-string "$AZURE_STORAGE_CONNECTION_STRING"
workflows: workflows:
version: 2 version: 2
build: build:
jobs: jobs:
- test
- build: - build:
requires:
- test
filters:
branches:
only:
- main
tags:
only: /.*/
- generate-windows-installer:
requires:
- build
filters:
branches:
only:
- main
tags:
only: /.*/
- upload-binary:
requires:
- build
- generate-windows-installer
filters: filters:
branches:
only:
- main
tags: tags:
only: /.*/ only: /.*/

@ -0,0 +1,46 @@
if (![string]::IsNullOrEmpty(${Env:CIRCLE_PR_NUMBER})) {
Write-Host "Skipping deploy step; as this is a PR"
exit;
}
if (![string]::IsNullOrEmpty(${Env:CIRCLE_TAG})) {
$ci_version = ${Env:CIRCLE_TAG}
}
elseif ( ${Env:CIRCLE_BRANCH} -eq "main" ) {
$ci_version = "canary"
}
else {
Write-Host "Skipping deploy step; this is neither a releasable branch or a tag"
exit;
}
Invoke-WebRequest -Uri https://jrsoftware.org/download.php/is.exe -OutFile inno.exe
$process = Start-Process -FilePath .\inno.exe -ArgumentList "/VERYSILENT", "/NORESTART" -NoNewWindow -PassThru -Wait
$process.WaitForExit()
Write-Host "Inno installer exit code : " $process.ExitCode
$binary_name = "helm-" + $ci_version + "-windows-amd64"
Write-Host "App Version :" $ci_version "Binary Name :" $binary_name
$process = Start-Process -FilePath ${Env:ProgramFiles(x86)}"\Inno Setup 6\ISCC.exe" -ArgumentList "helm_installer.iss", "/Dversion=$ci_version", "/Dopname=$binary_name" -NoNewWindow -PassThru -Wait
$process.WaitForExit()
Write-Host "Inno Compiler exit code : " $process.ExitCode
$output = "Output\"
$binary_path = $output + $binary_name + ".exe"
$hash = Get-FileHash -Path $binary_path -Algorithm SHA256
$opsha = $output + [System.IO.Path]::GetFileName($hash.Path) + $hash.Algorithm.ToLower()
$hash.Hash > $opsha
$opshasum = $opsha + "sum"
$hash.Hash + " " + $binary_name + ".exe" > $opshasum

@ -0,0 +1,34 @@
[Setup]
AppName=Helm
AppVersion={#version}
DefaultDirName={autopf}\Helm
DefaultGroupName=Helm
PrivilegesRequired=lowest
AppPublisher=Helm
AppPublisherURL=https://helm.sh
AppSupportURL=https://github.com/helm/helm
LicenseFile="windows-amd64\LICENSE"
OutputBaseFilename={#opname}
[Files]
Source: "windows-amd64\*" ; DestDir: "{app}\bin";
[Registry]
Root: "HKCU"; Subkey: "Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}\bin"; Check: NeedsAddPathHKCU(ExpandConstant('{app}\bin'))
[Code]
function NeedsAddPathHKCU(Param: string): boolean;
var
OrigPath: string;
begin
if not RegQueryStringValue(HKEY_CURRENT_USER,
'Environment',
'Path', OrigPath)
then begin
Result := True;
exit;
end;
// look for the path with leading and trailing semicolon
// Pos() returns 0 if not found
Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
end;
Loading…
Cancel
Save