310 lines
9.8 KiB
YAML
310 lines
9.8 KiB
YAML
variables:
|
|
VERS_MAIN: '1.0'
|
|
MACH_NAME: ''
|
|
MACH_NAME_TEST: ''
|
|
MANUFACTURER: ''
|
|
NEW_REL: ''
|
|
NET_SHARE_X: '\\10.74.82.201\EgwTech'
|
|
NET_SHARE_Z: '\\10.74.82.201\Artifacts'
|
|
NET_SHARE_S: '\\10.74.82.201\Scambio'
|
|
NET_SHARE_R: '\\10.74.82.201\EgwTech'
|
|
NET_SHARE_H: '\\10.74.82.252\team drives'
|
|
NET_USERQ: 'steamw\egalware'
|
|
NET_USER_SERVICES: 'steamw\services'
|
|
MACH_VERS: '0.0.0.0'
|
|
TEMP_PATH: 'C:\MachinesDeploy'
|
|
MACHINES_PATH_R: 'R:\EgtData\Machines'
|
|
DEST_MACHINES_PATH_R: 'R:\EgtData\Machines\zTestYAML'
|
|
DEST_MACHINES_PATH_H: 'H:\'
|
|
SRC_PATH: ''
|
|
BASE_PATH: ''
|
|
TEST_PATH: ''
|
|
URL_VERSIONS_LOG: "https://liman.egalware.com/ELM.API/api/release/save"
|
|
MACH_VERS_NUM: '0.0.0.0'
|
|
CRITICAL_STRING: "#critical#"
|
|
|
|
|
|
#Note compilazione LUA:
|
|
# lua54 -o bin\$FileName -s $FileName: -o = output, -s = NON include i debug symbols
|
|
|
|
# helper copia script verso cartella di rete S:\ delle cartelle bin
|
|
.ReplicaS: &ReplicaS
|
|
- |
|
|
net use S: /delete
|
|
SLEEP 2
|
|
net use S: $env:NET_SHARE_S /u:$env:NET_USERQ $SDRIVE_PASSWD
|
|
ROBOCOPY /MIR $env:BASE_PATH S:\LucaM\MachinesDeploy\$env:MACH_NAME\$env:MACH_VERS\ /XD "bin" /XD "$env:MACH_NAME_TEST"
|
|
SLEEP 2
|
|
net use S: /delete
|
|
|
|
# helper copia script verso cartella di rete R:\
|
|
.ReplicaR: &ReplicaR
|
|
- |
|
|
net use R: /delete
|
|
SLEEP 2
|
|
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
|
|
echo "-----------------------"
|
|
echo " Copia macchina su R"
|
|
echo "-----------------------"
|
|
$customerPathR = $env:DEST_MACHINES_PATH_R + "\" + $env:MANUFACTURER
|
|
ROBOCOPY /MIR "$env:SRC_PATH" "$customerPathR\$env:MACH_NAME\" /XD "bin"
|
|
ROBOCOPY "$env:TEST_PATH" "$customerPathR\$env:MACH_NAME_TEST\" /E /XD "bin"
|
|
ROBOCOPY /MIR "$env:BASE_PATH" "$customerPathR\Deploy\$env:MACH_NAME\$env:MACH_VERS\" /XD "bin" /XD "$env:MACH_NAME_TEST"
|
|
SLEEP 2
|
|
net use R: /delete
|
|
|
|
# helper copia script verso drive condiviso
|
|
.ReplicaStor01: &ReplicaStor01
|
|
- |
|
|
net use H: /delete
|
|
SLEEP 2
|
|
net use H: $env:NET_SHARE_H /u:$env:NET_USER_SERVICES $SRVCS_PASSWD
|
|
echo "-----------------------"
|
|
echo " Copia macchina su stor01"
|
|
echo "-----------------------"
|
|
SLEEP 2
|
|
$customerPathH = $env:DEST_MACHINES_PATH_H + "\" + $env:MANUFACTURER + "\test"
|
|
echo $customerPathH
|
|
$destinationPath = "$customerPathH\$env:MACH_NAME" + "\"
|
|
echo $destinationPath
|
|
# ROBOCOPY "$env:BASE_PATH" "$destinationPath\" *.zip
|
|
SLEEP 2
|
|
net use H: /delete
|
|
|
|
# helper copia script verso cartella di rete R:\ per develop
|
|
.ReplicaR_DEV: &ReplicaR_DEV
|
|
- |
|
|
net use R: /delete
|
|
SLEEP 2
|
|
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
|
|
echo "-----------------------"
|
|
echo " Copia macchina su R - DEV"
|
|
echo "-----------------------"
|
|
$customerPathR = $env:DEST_MACHINES_PATH_R + "\" + $env:MANUFACTURER
|
|
ROBOCOPY /MIR "$env:BASE_PATH" "$customerPathR\Deploy\$env:MACH_NAME\_DEV\$env:MACH_VERS\" /XD "bin" /XD "$env:MACH_NAME_TEST"
|
|
SLEEP 2
|
|
net use R: /delete
|
|
|
|
#helper copia sorgenti da R a percorso temporaneo
|
|
.CreateBaseFolder: &CreateBaseFolder
|
|
- |
|
|
net use R: /delete
|
|
SLEEP 2
|
|
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
|
|
echo "-----------------------"
|
|
echo " Recupero file non git da R e copia su macchina virtuale"
|
|
echo "-----------------------"
|
|
ROBOCOPY "$env:LAST_MACHINE_PATH" "$env:SRC_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
|
|
ROBOCOPY "$env:LAST_MACHINE_PATH" "$env:SRC_PATH\bin\$env:MACH_NAME\" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
|
|
SLEEP 2
|
|
net use R: /delete
|
|
|
|
# helper compilazione LUA a 32 e 64 bit
|
|
.LuaCompile: &LuaCompile
|
|
- |
|
|
Set-Alias lua54 C:\Tools\Lua32\luac54
|
|
echo "-----------------------"
|
|
echo " Copia file su macchina virtuale"
|
|
echo "-----------------------"
|
|
ROBOCOPY . "$env:SRC_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
|
|
ROBOCOPY . "$env:TEST_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
|
|
Rename-Item -Path "$env:TEST_PATH\$env:MACH_NAME.mlde" -NewName "$env:MACH_NAME_TEST.mlde"
|
|
Rename-Item -Path "$env:TEST_PATH\$env:MACH_NAME.ini" -NewName "$env:MACH_NAME_TEST.ini"
|
|
ROBOCOPY . "$env:SRC_PATH\bin\$env:MACH_NAME\" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
|
|
echo "-----------------------"
|
|
echo " Compilazione file *.lua 32/64bit"
|
|
echo "-----------------------"
|
|
$FileList = Get-ChildItem * -Include( "*.mlpe", "*.mlse")
|
|
ForEach ($File in $FileList) {
|
|
$FileName = Split-Path $File -leaf
|
|
lua54 -o $env:SRC_PATH\bin\$env:MACH_NAME\$FileName -s $FileName
|
|
echo "lua54 -o bin\$FileName -s $FileName"
|
|
}
|
|
|
|
# helper recupero nome macchina e costruttore
|
|
.machName-fix: &machName-fix
|
|
- |
|
|
echo "-----------------------"
|
|
echo " Recupero nome macchina e costruttore"
|
|
echo "-----------------------"
|
|
$fileName = dir *.mlde
|
|
$env:MACH_NAME = $fileName.BaseName
|
|
echo $fileName.BaseName
|
|
$env:MACH_NAME_TEST = $env:MACH_NAME + ".TEST"
|
|
$comp = $fileName.BaseName -split "-"
|
|
echo $comp
|
|
$env:MANUFACTURER = $comp[0]
|
|
Write-Output $env:MANUFACTURER
|
|
|
|
# helper calcolo versione
|
|
.version-fix: &version-fix
|
|
- |
|
|
echo "-----------------------"
|
|
echo " Calcolo versione"
|
|
echo "-----------------------"
|
|
|
|
# calcolo versione formato stringa
|
|
$fPath = "$env:MACH_NAME.mlde";
|
|
$vLine = Select-String -path $fPath -Pattern '^PP_VER';
|
|
$comp = $vLine -split "=";
|
|
$env:MACH_VERS = $comp[1].Replace("'","").Trim()
|
|
# display versione formato stringa
|
|
Write-Output $env:MACH_VERS
|
|
|
|
# calcolo versione formato numerico
|
|
$fPath = "$env:MACH_NAME.mlde";
|
|
$vLine = Select-String -path $fPath -Pattern '^PP_NVER';
|
|
$comp = $vLine -split "=";
|
|
$env:MACH_VERS_NUM = $comp[1].Replace("'","").Trim()
|
|
# display versione formato numerico
|
|
Write-Output $env:MACH_VERS_NUM
|
|
|
|
# helper calcolo versione se develop
|
|
.version-fix_DEV: &version-fix_DEV
|
|
- |
|
|
echo "-----------------------"
|
|
echo " Calcolo versione - DEV"
|
|
echo "-----------------------"
|
|
$commitAuthor = $CI_COMMIT_AUTHOR -split " "
|
|
$commitAuthor = $commitAuthor[0].Trim()
|
|
$env:MACH_VERS = $commitAuthor
|
|
# display versione
|
|
Write-Output $env:MACH_VERS
|
|
|
|
# helper creazione folders
|
|
.folder-fix: &folder-fix
|
|
- |
|
|
echo "-----------------------"
|
|
echo " Creazione cartelle su macchina virtuale"
|
|
echo "-----------------------"
|
|
$env:LAST_MACHINE_PATH = "$env:MACHINES_PATH_R\$env:MACH_NAME";
|
|
Write-Output $env:LAST_MACHINE_PATH;
|
|
$env:SRC_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS\$env:MACH_NAME";
|
|
$env:BASE_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS";
|
|
$env:TEST_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS\$env:MACH_NAME_TEST";
|
|
Write-Output $env:BASE_PATH;
|
|
if (Test-Path $env:BASE_PATH) { Remove-Item -Path "$env:BASE_PATH\*" -R -Force };
|
|
Write-Output $env:TEST_PATH;
|
|
|
|
# helper compressione e pulizia folders
|
|
.ZipClean: &ZipClean
|
|
- |
|
|
" Compressione file su macchina virtuale"
|
|
$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 = "$env:BASE_PATH\$env:MACH_NAME.zip"
|
|
cd "$env:SRC_PATH\bin\"
|
|
$Source = "*"
|
|
7zip a -tzip $Target $Source
|
|
Write-Output "called ZIP $Source --> $Target"
|
|
|
|
# helper invio notifica a log versioni online (LiMan)
|
|
.SendToVersionsLog: &SendToVersionsLog
|
|
- |
|
|
echo "-----------------------"
|
|
echo " Invio versione a log online"
|
|
echo "-----------------------"
|
|
$tags = ""
|
|
# se critico scrive tag
|
|
if ( $CI_COMMIT_MESSAGE | Select-String -Pattern $env:CRITICAL_STRING) {
|
|
$tags = "CRITICAL"
|
|
}
|
|
$body =
|
|
@{
|
|
codInst = "EgalWare"
|
|
codApp = $env:MACH_NAME
|
|
uplAppId = "UpdateManager"
|
|
masterKey = $LiMan_Key
|
|
tipo = "Machine"
|
|
versNum = $env:MACH_VERS_NUM
|
|
versText = $env:MACH_VERS
|
|
releaseDate = (Get-Date).toString("yyyy-MM-ddTHH:mm:ss.fffZ")
|
|
relTags = $tags
|
|
}
|
|
$jsonBody = ConvertTo-Json -InputObject $body
|
|
echo $jsonBody
|
|
Invoke-WebRequest -Method Post -URI $env:URL_VERSIONS_LOG -ContentType "application/json" -Body $jsonBody -UseBasicParsing
|
|
|
|
|
|
# helper esecuzione test
|
|
.RunTest: &RunTest
|
|
- |
|
|
Write-Output "Test done!"
|
|
|
|
|
|
stages:
|
|
- build
|
|
# - test
|
|
# - deploy
|
|
|
|
LuaCompile:build:
|
|
stage: build
|
|
only:
|
|
- main
|
|
- master
|
|
tags:
|
|
- win
|
|
before_script:
|
|
- *machName-fix
|
|
- *version-fix
|
|
- *folder-fix
|
|
script:
|
|
- *CreateBaseFolder
|
|
- *LuaCompile
|
|
- *ZipClean
|
|
- *ReplicaR
|
|
- *ReplicaStor01
|
|
- *SendToVersionsLog
|
|
|
|
LuaCompileDev:build:
|
|
stage: build
|
|
only:
|
|
- develop
|
|
tags:
|
|
- win
|
|
before_script:
|
|
- *machName-fix
|
|
- *version-fix_DEV
|
|
- *folder-fix
|
|
script:
|
|
- *CreateBaseFolder
|
|
- *LuaCompile
|
|
- *ZipClean
|
|
- *ReplicaR_DEV
|
|
|
|
# LuaCompile:test:
|
|
# stage: test
|
|
# needs: ["LuaCompile:build"]
|
|
# only:
|
|
# - main
|
|
# - master
|
|
# - develop
|
|
# tags:
|
|
# - win
|
|
# before_script:
|
|
# - *version-fix
|
|
# - *folder-fix
|
|
# script:
|
|
# - *LuaCompile
|
|
# - *RunTest
|
|
|
|
# LuaCompile:deploy:
|
|
# stage: deploy
|
|
# needs: ["LuaCompile:test"]
|
|
# only:
|
|
# - main
|
|
# - master
|
|
# tags:
|
|
# - win
|
|
# before_script:
|
|
# - *version-fix
|
|
# - *folder-fix
|
|
# script:
|
|
# - *LuaCompile
|
|
# - *ZipClean
|
|
# - *ReplicaR
|
|
|