Merge branch 'master' into 'master'
CI to build nupkg See merge request openflexure/openflexure-microscope-jsclient!10
This commit is contained in:
commit
a4898d7591
3 changed files with 159 additions and 3 deletions
|
|
@ -1,13 +1,32 @@
|
||||||
image: electronuserland/builder:wine
|
stages:
|
||||||
|
- build
|
||||||
|
- deploy
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
stage: build
|
||||||
|
image: electronuserland/builder:wine
|
||||||
script:
|
script:
|
||||||
- npm install
|
- npm install
|
||||||
- npm run release
|
- npm run release
|
||||||
|
- chmod +x ./app/make-nupkg.sh
|
||||||
|
- ./app/make-nupkg.sh
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- release-builds/*.exe
|
- release-builds/*.exe
|
||||||
- release-builds/*.deb
|
- release-builds/*.deb
|
||||||
- release-builds/*.AppImage
|
- release-builds/*.AppImage
|
||||||
only:
|
- release-builds/choco/openflexure-ev.nuspec
|
||||||
- tags
|
- release-builds/choco/tools/chocolateyInstall.ps1
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
stage: deploy
|
||||||
|
image: patrickhuber/choco-linux
|
||||||
|
dependencies:
|
||||||
|
- build
|
||||||
|
script:
|
||||||
|
- cd ./release-builds/choco
|
||||||
|
- ls -R
|
||||||
|
- choco pack
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- release-builds/choco/*.nupkg
|
||||||
|
|
|
||||||
66
app/make-nupkg.ps1
Normal file
66
app/make-nupkg.ps1
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
$silentArgs = '/S'
|
||||||
|
$packageName = 'openflexure-ev'
|
||||||
|
$fileType = 'exe'
|
||||||
|
|
||||||
|
$packagepath = Join-Path -Path $PSScriptRoot -ChildPath '..\'
|
||||||
|
$packageJson = Join-Path -Path $packagepath -ChildPath '\package.json'
|
||||||
|
$outpath = Join-Path -Path $packagepath -ChildPath 'release-builds\choco'
|
||||||
|
|
||||||
|
echo $packagepath
|
||||||
|
echo $outpath
|
||||||
|
|
||||||
|
If(!(test-path $outpath))
|
||||||
|
{
|
||||||
|
New-Item -ItemType Directory -Force -Path $outpath
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get version from package.json
|
||||||
|
$FullVersion = (Get-Content $packageJson) -join "`n" | ConvertFrom-Json | Select -ExpandProperty "version"
|
||||||
|
$MajVer, $MinVer = $FullVersion.Split("-") # Split version number from beta string
|
||||||
|
$MinVer = $MinVer.Replace(".", "") # Convert symver into nuspec ver
|
||||||
|
$version = $MajVer + "-" + $MinVer
|
||||||
|
|
||||||
|
$InstURL = "$Env:CI_JOB_URL/artifacts/browse/release-builds/openflexure-ev-win.exe"
|
||||||
|
echo $InstURL
|
||||||
|
|
||||||
|
$NuSpec = @"
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<metadata>
|
||||||
|
<id>$packageName</id>
|
||||||
|
<title>OpenFlexure eV</title>
|
||||||
|
<version>$Version</version>
|
||||||
|
<authors>OpenFlexure</authors>
|
||||||
|
<owners>Bath Open Instrumentation Group</owners>
|
||||||
|
<summary>OpenFlexure Microscope client</summary>
|
||||||
|
<description>An electron-based user client for the OpenFlexure Microscope Server</description>
|
||||||
|
<projectUrl>https://www.openflexure.org/</projectUrl>
|
||||||
|
<docsUrl>https://www.openflexure.org/projects/microscope/</docsUrl>
|
||||||
|
<bugTrackerUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/issues</bugTrackerUrl>
|
||||||
|
<projectSourceUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/</projectSourceUrl>
|
||||||
|
|
||||||
|
<packageSourceUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/</packageSourceUrl>
|
||||||
|
|
||||||
|
<tags>openflexure microscope ev</tags>
|
||||||
|
<licenseUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/raw/master/LICENSE</licenseUrl>
|
||||||
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
|
<iconUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/raw/master/app/icons/png/512x512.png</iconUrl>
|
||||||
|
</metadata>
|
||||||
|
<files>
|
||||||
|
<file src="tools\**" target="tools" />
|
||||||
|
</files>
|
||||||
|
</package>
|
||||||
|
"@
|
||||||
|
|
||||||
|
echo $NuSpec | Out-File -force -FilePath "$outpath\openflexure-ev.nuspec"
|
||||||
|
|
||||||
|
$InstPS1 = "Install-ChocolateyPackage '$packageName' '$fileType' '$silentArgs' '$InstURL'"
|
||||||
|
|
||||||
|
$toolspath = "$outpath\tools"
|
||||||
|
If(!(test-path $toolspath))
|
||||||
|
{
|
||||||
|
New-Item -ItemType Directory -Force -Path $toolspath
|
||||||
|
}
|
||||||
|
echo $InstPS1 | Out-File -force -FilePath "$toolspath\chocolateyInstall.ps1"
|
||||||
|
|
||||||
|
choco pack --outputdirectory $outpath "$outpath\openflexure-ev.nuspec"
|
||||||
71
app/make-nupkg.sh
Normal file
71
app/make-nupkg.sh
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
silentArgs='/S'
|
||||||
|
packageName='openflexure-ev'
|
||||||
|
fileType='exe'
|
||||||
|
|
||||||
|
scriptPath=`dirname $0`
|
||||||
|
packagePath="$(dirname "$scriptPath")"
|
||||||
|
packageJson="$packagePath/package.json"
|
||||||
|
outpath="$packagePath/release-builds/choco"
|
||||||
|
toolspath="$outpath/tools"
|
||||||
|
mkdir -p $toolspath
|
||||||
|
|
||||||
|
echo $scriptPath
|
||||||
|
echo $packageJson
|
||||||
|
echo $outpath
|
||||||
|
|
||||||
|
# Get package version from package.json
|
||||||
|
packageVersion=$(cat $packageJson \
|
||||||
|
| grep version \
|
||||||
|
| head -1 \
|
||||||
|
| awk -F: '{ print $2 }' \
|
||||||
|
| sed 's/[",]//g' \
|
||||||
|
| tr -d '[[:space:]]')
|
||||||
|
|
||||||
|
# Convert into a nupkg-safe version string
|
||||||
|
majVer="$(echo $packageVersion | cut -d'-' -f1)"
|
||||||
|
minVer="$(echo $packageVersion | cut -d'-' -f2)"
|
||||||
|
minVer="${minVer//.}"
|
||||||
|
version="$majVer-$minVer"
|
||||||
|
|
||||||
|
echo $version
|
||||||
|
|
||||||
|
# Build installer URL
|
||||||
|
instURL="$CI_JOB_URL/artifacts/raw/release-builds/openflexure-ev-win.exe"
|
||||||
|
echo $instURL
|
||||||
|
|
||||||
|
# Build nuspec
|
||||||
|
cat > "$outpath/openflexure-ev.nuspec" <<- EOL
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<metadata>
|
||||||
|
<id>$packageName</id>
|
||||||
|
<title>OpenFlexure eV</title>
|
||||||
|
<version>$version</version>
|
||||||
|
<authors>OpenFlexure</authors>
|
||||||
|
<owners>Bath Open Instrumentation Group</owners>
|
||||||
|
<summary>OpenFlexure Microscope client</summary>
|
||||||
|
<description>An electron-based user client for the OpenFlexure Microscope Server</description>
|
||||||
|
<projectUrl>https://www.openflexure.org/</projectUrl>
|
||||||
|
<docsUrl>https://www.openflexure.org/projects/microscope/</docsUrl>
|
||||||
|
<bugTrackerUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/issues</bugTrackerUrl>
|
||||||
|
<projectSourceUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/</projectSourceUrl>
|
||||||
|
|
||||||
|
<packageSourceUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/</packageSourceUrl>
|
||||||
|
|
||||||
|
<tags>openflexure microscope ev</tags>
|
||||||
|
<licenseUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/raw/master/LICENSE</licenseUrl>
|
||||||
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
|
<iconUrl>https://gitlab.com/openflexure/openflexure-microscope-jsclient/raw/master/app/icons/png/512x512.png</iconUrl>
|
||||||
|
</metadata>
|
||||||
|
<files>
|
||||||
|
<file src="tools/**" target="tools" />
|
||||||
|
</files>
|
||||||
|
</package>
|
||||||
|
EOL
|
||||||
|
|
||||||
|
# Build installer PS1 content
|
||||||
|
instPS1="Install-ChocolateyPackage $packageName $fileType $silentArgs $instURL"
|
||||||
|
echo $instPS1 > "$toolspath/chocolateyInstall.ps1"
|
||||||
|
|
||||||
|
# Build nupkg
|
||||||
|
# choco pack --allow-unofficial --outputdirectory $outpath "$outpath/openflexure-ev.nuspec"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue