From d29f611542cba8198dfd0163be04c365a2b2092e Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Mon, 23 Sep 2024 09:52:34 +0200 Subject: [PATCH] - aggiunto YAML per compilazione e comunicazione versioni a LiMan - in mlde aggiunta PP_NVER, versione in formato numerico - tutte le chiamate a EgtGetSourceDir() sostituite con EgtGetCurrMachineDir() --- .gitlab-ci.yml | 304 +++++++++++++++++++++++++++++++++++++++ Essetre-90480019_MW.mlde | 7 +- Essetre-WALL.mlpe | 4 +- Wall/WallData.lua | 2 +- 4 files changed, 311 insertions(+), 6 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..b4625bc --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,304 @@ +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_GIT' + 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: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" + $destinationPath = "$customerPathH\$env:MACH_NAME" + "\" + 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: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 + $env:MACH_NAME_TEST = $env:MACH_NAME + ".TEST" + $comp = $fileName.BaseName -split "-" + $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 + diff --git a/Essetre-90480019_MW.mlde b/Essetre-90480019_MW.mlde index 6fbdb98..2df1f75 100644 --- a/Essetre-90480019_MW.mlde +++ b/Essetre-90480019_MW.mlde @@ -1,10 +1,11 @@ --- Descrizione macchina Essetre-90480026 by EgalTech s.r.l. 2021/07/30 +-- Descrizione macchina Essetre-90480026 by EgalTech s.r.l. 2024/09/23 -- Macchina Wall. require( 'EmtGenerator') EgtEnableDebug( false) -PP_VER = '2.3g8' +PP_VER = '2.6i1' +PP_NVER = '2.6.9.1' -- Parametri macchina NumericalControl = 'NUM' -- NUM o TPA @@ -50,7 +51,7 @@ CoeffVM = 0.75 -- Aggiornamento con dati da TechnoEssetre7 local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90480019_MW.data" -local sData = EgtGetSourceDir().."\\Wall\\Ts3Data.lua" +local sData = EgtGetCurrMachineDir().."\\Wall\\Ts3Data.lua" if EgtExistsFile( sTs3Data) then EgtCopyFile( sTs3Data, sData) local sTs3DataOld = sTs3Data..'.old' diff --git a/Essetre-WALL.mlpe b/Essetre-WALL.mlpe index 0013fef..d2530ae 100644 --- a/Essetre-WALL.mlpe +++ b/Essetre-WALL.mlpe @@ -9,9 +9,9 @@ EgtEnableDebug( false) --------------------------------------------------------------------- -- *** GENERATION *** --------------------------------------------------------------------- -local sBaseDir = EgtGetSourceDir() +local sBaseDir = EgtGetCurrMachineDir() if NumericalControl == 'NUM' then - dofile( sBaseDir .. 'Essetre-WALL.NUM.mlpe') + dofile( sBaseDir .. '\\Essetre-WALL.NUM.mlpe') elseif NumericalControl == 'TPA' then error( 'Numerical Control error : TPA not yet managed') --dofile( sBaseDir .. 'Essetre-WALL.TPA.mlpe') diff --git a/Wall/WallData.lua b/Wall/WallData.lua index 5f6bc14..01068dc 100644 --- a/Wall/WallData.lua +++ b/Wall/WallData.lua @@ -46,7 +46,7 @@ WallData.GetOrigCorner = GetOrigCorner -- Aggiornamento con dati da TechnoEssetre7 local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90480019_MW.data" -local sData = EgtGetSourceDir().."\\Ts3Data.lua" +local sData = EgtGetCurrMachineDir().."\\Wall\\Ts3Data.lua" if EgtExistsFile( sTs3Data) then EgtCopyFile( sTs3Data, sData) local sTs3DataOld = sTs3Data..'.old'