From 133041d030f90d3a5d609e69cc79cd4c384292b2 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 3 Aug 2022 16:38:57 +0200 Subject: [PATCH] bozza yaml iniziale --- .gitlab-ci.yml | 243 +++++++++++++++++++++++++++++ Jenkinsfile => 2delete/Jenkinsfile | 0 2 files changed, 243 insertions(+) create mode 100644 .gitlab-ci.yml rename Jenkinsfile => 2delete/Jenkinsfile (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..c129e00 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,243 @@ +variables: + NUGET_PATH: 'C:\Tools\nuget.exe' + MSBUILD_PATH: 'C:\Program Files (Any CPU)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe' + SOL_NAME: 'SCMA' + APP_NAME: 'SCMA' + NUM_REL: '0.1.2.3' + NUM_DEB: '0.1.2-beta.3' + CONFIG: '' + VERS_MAIN: '2.2' + NEW_REL: '' + OUTPUT_DIR: '' + NEXUS_PATH: 'SCM/SCMA' + +# helper x fix pacchetti nuget da repo locale nexus.steamware.net +.nuget-fix: &nuget-fix + - | + $hasSource = C:\Tools\nuget.exe sources list | find "`"Steamware Nexus`"" /C + if ($hasSource -eq 0) { + C:\Tools\nuget.exe sources Add -Name "`"Steamware Nexus`"" -Source https://nexus.steamware.net/repository/nuget-group -username "`"nugetUser`"" -password "`"$NEXUS_PASSWD`"" + } else { + C:\Tools\nuget.exe sources Update -Name "`"Steamware Nexus`"" -Source https://nexus.steamware.net/repository/nuget-group -username "`"nugetUser`"" -password "`"$NEXUS_PASSWD`"" + } + echo $hasSource + +# helper x fix version number +.version-fix: &version-fix + - | + $env:NEW_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format ddHH) + $env:NUM_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format dHH) + $env:NUM_DEB = $env:VERS_MAIN+"."+(get-date –format yyMM)+"-beta."+(get-date –format dHH) + $env:NEW_COPYRIGHT = "EgalWare @ 2006-" + (get-date -format yyyy) + $contenuto = Get-Content -path 'VersGen\VersGen.cs' -Raw + $newContenuto = $contenuto -replace '1.0.0.0', $env:NEW_REL + $newContenuto = $newContenuto -replace 'EgalWare © 2006', $env:NEW_COPYRIGHT + $newContenuto | Set-Content -Path 'VersGen\VersGen.cs' + # display versioni generate + $resoconto = "Effettuato fix file VersGen | release v: " + $env:NUM_REL + " | debug v: " + $env:NUM_DEB; + Write-Output $resoconto; + echo "replace completati" + +# helper x fix nuspec file +.nuspec-fix: &nuspec-fix + - | + echo "Modifica dati file nuspec Release" + $currRelease = $env:NUM_REL + $currDebug = $env:NUM_DEB + $find = "(.|\n)*?"; + $fileNameRel = "$env:APP_NAME.Release.nuspec"; + $replRel = "" + $currRelease + ""; + $nuspDataRel = Get-Content $fileNameRel; + $nuspDataRelUpd = $nuspDataRel -replace $find, $replRel; + $nuspDataRelUpd = $nuspDataRelUpd -replace "#copyright#", $replCopy; + $nuspDataRelUpd = $nuspDataRelUpd -replace "#releaseNotes#", "Build $adesso"; + Set-Content -Path $fileNameRel -Value $nuspDataRelUpd; + echo "Modifica dati file nuspec Debug" + $fileNameDeb = "$env:APP_NAME.Debug.nuspec"; + $replDeb = "" + $currDebug + ""; + $nuspDataDeb = Get-Content $fileNameDeb; + $nuspDataDebUpd = $nuspDataDeb -replace $find, $replDeb; + $nuspDataDebUpd = $nuspDataDebUpd -replace "#copyright#", $replCopy; + $nuspDataDebUpd = $nuspDataDebUpd -replace "#releaseNotes#", "Build $adesso"; + Set-Content -Path $fileNameDeb -Value $nuspDataDebUpd; + echo "replace completati" + +# helper pulizia files zip +.cleanup-zip: &cleanup-zip + - | + $env:OUTPUT_DIR = "Releases\" + $CI_COMMIT_BRANCH + "\*" + if ((Test-Path $env:OUTPUT_DIR)) + { + Remove-Item $env:OUTPUT_DIR -Force -Recurse -ErrorAction Ignore + } + echo "Clening ZIP dir: $env:OUTPUT_DIR" + +# helper creazione files zip +.zipper: &zipper + - | + $7zipPath = $env:ProgramFiles+"\7-Zip\7z.exe" + if (-not (Test-Path -Path $7zipPath -PathType Leaf)) { + throw "7 zip file '$7zipPath' not found" + } + Set-Alias 7zip $7zipPath + $Target = "Releases\" + $CI_COMMIT_BRANCH + "\" + $env:APP_NAME + ".zip" + cd "$env:APP_NAME\bin\" + $Source = "*" + 7zip a -tzip $Target $Source -xr!DATA + echo "called ZIP $Source --> $Target" + +# helper creazione hash files +.hashBuild: &hashBuild + - | + $Target = "Releases\" + $CI_COMMIT_BRANCH + "\" + $env:APP_NAME + ".zip" + $MD5 = Get-FileHash $Target -Algorithm MD5 + $SHA1 = Get-FileHash $Target -Algorithm SHA1 + New-Item $Target".md5" + New-Item $Target".sha1" + $MD5.Hash | Set-Content -Path $Target".md5" + $SHA1.Hash | Set-Content -Path $Target".sha1" + echo "Created HASH files for $Target" + +.nexusUpload: &nexusUpload + - | + Set-Alias mCurl C:\Windows\system32\curl.exe + $VersNumb = $env:NEW_REL + echo "Curr Version: $VersNumb" + if($CI_COMMIT_BRANCH -eq "master") + { + $version = "stable" + } + else + { + $version = "unstable" + } + $File2Send = Get-ChildItem("Releases\" + $CI_COMMIT_BRANCH + "\" + $env:APP_NAME + ".*") + ForEach ($File in $File2Send) { + $FileName = Split-Path $File -leaf + mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file $File https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$version/LAST/$FileName + mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file $File https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$version/ARCHIVE/$VersNumb/$FileName + } + echo "Upload area utility for Releases\$CI_COMMIT_BRANCH\$env:APP_NAME.*" + $FileUtility = Get-ChildItem("Releases\$CI_COMMIT_BRANCH\$env:APP_NAME.*") + ForEach ($File in $FileUtility) { + $FileName = Split-Path $File -leaf + mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file $File https://nexus.steamware.net/repository/utility/MAPO/$env:APP_NAME/$version/$FileName + } + +stages: + - build + - release + +# -------------------------------- +# BUILD +# -------------------------------- + +SCMA:build: + stage: build + tags: + - win + variables: + APP_NAME: SCMA + only: + refs: + - develop + - main + - master + before_script: + - *nuget-fix + - '& "$env:NUGET_PATH" restore "MTC_Adapter\$env:SOL_NAME.sln" -verbosity quiet' + - *version-fix + script: + - '& "$env:MSBUILD_PATH" "MTC_Adapter\$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="Any CPU" /p:DefineConstants=\"FS30D=1,SIEMENS=1\" /p:OutputPath=bin/ /verbosity:minimal /m' + +MTC-ADB:build: + stage: build + tags: + - win + variables: + APP_NAME: MTC-ADB + only: + refs: + - develop + - main + - master + before_script: + - *nuget-fix + - '& "$env:NUGET_PATH" restore "MTC_Adapter\$env:SOL_NAME.sln" -verbosity quiet' + - *version-fix + script: + - '& "$env:MSBUILD_PATH" "MTC_Adapter\$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="Any CPU" /p:OutputPath=bin/ /verbosity:minimal /m' + +# -------------------------------- +# RELEASE +# -------------------------------- + +SCMA:release: + stage: release + needs: ["SCMA:build"] + tags: + - win + variables: + APP_NAME: SCMA + NEXUS_PATH: MAPO/SCMA + only: + refs: + - main + - master + before_script: + - *nuget-fix + - '& "$env:NUGET_PATH" restore "MTC_Adapter\$env:SOL_NAME.sln" -verbosity quiet' + - *version-fix + - *cleanup-zip + script: + - '& "$env:MSBUILD_PATH" "MTC_Adapter\$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:DebugSymbols=false /p:DebugType=None /p:DefineConstants=\"FS30D=1,SIEMENS=1\" /p:Platform="Any CPU" /p:OutputPath=bin/ /verbosity:minimal /m' + - *zipper + - *hashBuild + - *nexusUpload + +MTC-ADB:release: + stage: release + needs: ["MTC-ADB:build"] + tags: + - win + variables: + APP_NAME: MTC-ADB + NEXUS_PATH: MAPO/MTC-ADB + only: + refs: + - main + - master + before_script: + - *nuget-fix + - '& "$env:NUGET_PATH" restore "MTC_Adapter\$env:SOL_NAME.sln" -verbosity quiet' + - *version-fix + - *cleanup-zip + script: + - '& "$env:MSBUILD_PATH" "MTC_Adapter\$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:DebugSymbols=false /p:DebugType=None /p:Platform="Any CPU" /p:OutputPath=bin/ /verbosity:minimal /m' + - *zipper + - *hashBuild + - *nexusUpload + +EgwProxy.Icoel:build:release: + stage: release + needs: ["EgwProxy.Icoel:build"] + tags: + - win + variables: + CONFIG: Release + APP_NAME: EgwProxy.Icoel + only: + refs: + - SDK/Icoel + before_script: + - *nuget-fix + - '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet' + - *version-fix + - *nuspec-fix + script: + - '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m' + - '& Remove-Item *.nupkg' + - '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"' +# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.csproj" -properties Configuration=$env:CONFIG -Version $env:NUM_REL' + - '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted' + - '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted' diff --git a/Jenkinsfile b/2delete/Jenkinsfile similarity index 100% rename from Jenkinsfile rename to 2delete/Jenkinsfile