From a58ed1b4760b0ee9996b4ce60a6a0d792442e22d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 16:15:14 +0000 Subject: [PATCH 1/5] Initial plan From 7a265bf94db3a450f7d112289e6711c5bb77a3c5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 16:17:51 +0000 Subject: [PATCH 2/5] Add VIDiff report path debugging before artifact upload Agent-Logs-Url: https://github.com/gregr-ni/labview-ci-cd/sessions/7f87de6f-ef78-41b2-ae67-367755d9482d Co-authored-by: gregr-ni <71788381+gregr-ni@users.noreply.github.com> --- .github/workflows/vidiff-windows-container.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/vidiff-windows-container.yml b/.github/workflows/vidiff-windows-container.yml index 58bd9d1..b9c7df6 100644 --- a/.github/workflows/vidiff-windows-container.yml +++ b/.github/workflows/vidiff-windows-container.yml @@ -68,6 +68,22 @@ jobs: } - name: Upload VIDiff reports + if: steps.changed-vis.outputs.has_changes == 'true' + shell: pwsh + run: | + $reportDir = Join-Path "${{ github.workspace }}" "pr\vidiff-reports" + Write-Host "Workspace root: ${{ github.workspace }}" + Write-Host "Expected report directory: $reportDir" + if (Test-Path $reportDir) { + Write-Host "Contents of $reportDir:" + Get-ChildItem -Path $reportDir -Recurse | Select-Object FullName, Length + } else { + Write-Host "Expected report directory does not exist." + } + Write-Host "VIDiff report directories discovered under PR checkout:" + Get-ChildItem -Path (Join-Path "${{ github.workspace }}" "pr") -Directory -Recurse -Filter "vidiff-reports" | Select-Object FullName + + - name: Upload VIDiff reports artifact if: steps.changed-vis.outputs.has_changes == 'true' uses: actions/upload-artifact@v4 with: From a25e59ca9b7526801e07611bdaab516c4bd1c6dc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 17:07:19 +0000 Subject: [PATCH 3/5] Initial plan From 6427b139c9173abf9c9a19addb2ca39dbce079eb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 17:08:47 +0000 Subject: [PATCH 4/5] Fix PowerShell interpolation bug and add Linux debug step for VIDiff diagnostics Agent-Logs-Url: https://github.com/gregr-ni/labview-ci-cd/sessions/d51611eb-f1ca-45a2-865a-104c238f9674 Co-authored-by: gregr-ni <71788381+gregr-ni@users.noreply.github.com> --- .github/workflows/vidiff-linux-container.yml | 14 ++++++++++++++ .github/workflows/vidiff-windows-container.yml | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vidiff-linux-container.yml b/.github/workflows/vidiff-linux-container.yml index d543272..b3c3a59 100644 --- a/.github/workflows/vidiff-linux-container.yml +++ b/.github/workflows/vidiff-linux-container.yml @@ -65,6 +65,20 @@ jobs: echo "::endgroup::" done + - name: Debug generated reports + if: steps.changed-vis.outputs.has_changes == 'true' + run: | + REPORT_DIR="${{ github.workspace }}/pr/vidiff-reports" + echo "Report directory: $REPORT_DIR" + if [ -d "$REPORT_DIR" ]; then + echo "Contents of $REPORT_DIR:" + find "$REPORT_DIR" -maxdepth 5 -type f | sort + HTML_COUNT=$(find "$REPORT_DIR" -type f -name '*.html' | wc -l) + echo "HTML report count: $HTML_COUNT" + else + echo "Report directory does not exist: $REPORT_DIR" + fi + - name: Upload VIDiff reports if: steps.changed-vis.outputs.has_changes == 'true' uses: actions/upload-artifact@v4 diff --git a/.github/workflows/vidiff-windows-container.yml b/.github/workflows/vidiff-windows-container.yml index b9c7df6..effc529 100644 --- a/.github/workflows/vidiff-windows-container.yml +++ b/.github/workflows/vidiff-windows-container.yml @@ -75,7 +75,7 @@ jobs: Write-Host "Workspace root: ${{ github.workspace }}" Write-Host "Expected report directory: $reportDir" if (Test-Path $reportDir) { - Write-Host "Contents of $reportDir:" + Write-Host "Contents of ${reportDir}:" Get-ChildItem -Path $reportDir -Recurse | Select-Object FullName, Length } else { Write-Host "Expected report directory does not exist." From 6e7dbb2307eb6eb291226e3f28d87545a6d8e667 Mon Sep 17 00:00:00 2001 From: Sumedha Ganjoo Date: Wed, 24 Jun 2026 10:45:53 -0500 Subject: [PATCH 5/5] Demo test Added error clusters and divide by 2 --- examples/cicd-examples/Test-VIs/ArthOps.vi | Bin 5131 -> 5487 bytes .../cicd-examples/Test-VIs/CreateNewProj.vi | Bin 4445 -> 6173 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/cicd-examples/Test-VIs/ArthOps.vi b/examples/cicd-examples/Test-VIs/ArthOps.vi index d45a17e7c6a332d6bf9affd91207aeffe3aadaa1..f763fa85be12673b51e42fff5664d486a1c6849a 100644 GIT binary patch delta 3717 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 delta 3361 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 O2BEyHuLUb!_x=x2r@VRq diff --git a/examples/cicd-examples/Test-VIs/CreateNewProj.vi b/examples/cicd-examples/Test-VIs/CreateNewProj.vi index 79b48a1d8c9f3bf76e67f0aa8926578171393e88..5766e4b560f5375075e39640a968d4e2f3cbafce 100644 GIT binary patch delta 4449 zcma)=cTiNz(!dWaNX`oq7X>8euq={MqJSV#$sl<}a)w31!lEP*$qJH_2ul;+R-gm!x@73jx*HwL{=hr>cbEax~>YQn|OyOG(^d8(HBL+a4hU(gyN`^)N z03HSakU9VWH?VdUw$0*9xFx3Fje^;|F4njRr5)RiZ{D!QI!LifiB+I~S|H!{tL8Ma zx1o`YGOu-*<;6rCP>Ht|LX@(3q7?im=8tT5Z+YUKD1nMD`$cAC4nz}5nOW()6{_Yj z_G*b0ABT#N1Ebh5QclVcY=b8X6%5V+CHu+-2T6Nq{zKgdLrp;|@?ELy*;iLK}w zcocw?DqTgxaEkE|1nB_4QtO+s_0Sm(HUP`{c$?TKTNmWDLzVnZ3Mit=hU2;MQL}XI zSwBBS7h=5azPpTXi=)xpA~@pd*ECP80+~>84%WiF>Zl$1TLvg+ut*CbXUW-a!9dEj z&dW zP-v)^oRGd$#nDu+Fk>`#@*Wv682pkJ+NEXRcCOCSs#FSGPpIsE&`fKhfB(n%Zp@zc66)(Q~GLF5A2{BX( zD-U2ye^iC)TH~wNil4O1xW=Vj$n%@NE0cjXy*E+M0cA%q&SjS$`*7Lc#rxNRqj>8G zl&Mo8Gs9c}8ZBSU#kcID_L&S1a}s3jV&uYuF0W5QREO@AwaZlY;ndfl@dAo(%@zXQG-9a{x~qpN}_ZkKkYDCc0^_~iBspWh-Chxc+TmC zEG5jt9s6K|7N+A~e#Qzx7EBum8VI|yq?vOT?0b(KNo8o1;NPK>un?`JzBlTBy~^cT z|HLE#;^AJdz)4pJLuF|`&U1yYOdfYFD*W?2LTQc4%+-@zUm$6fnM8{A&qG{DBYUDC zImfD`T6rL(oaT-(Qvo}&hW#Da{6MAyU5t~{^{wa5!_3ibvUd5}23n{>#u(CmS2!1o zS{wN29*j}MXYeHcO;mA}Mb5dj>X$tjve`Wiaffll+d(989c0Ms##b5JM9&{=BwQyV z3VZC$I}lZw$)tHZ1|mi#tKrqf`aP$KisL?bU&qn(xl{DFQh!!@6jH=V2)&%Y+ID!J zX~j;5BKv9KOV`c9>5`)HCAakvzv5n_r?I4X-$3j6?Tg;NFET#(jBNsCvY}#ffq|~2 zhy`a>i`LVdN``ZkMG4V+^ANVhYh#pq^R=5iN=j{sK8)z%A!M zz%0rUKAP3z;v5aDkF(5@jZmQR-d21Q@WImGW)FrqKqk_G&c~ognXnS!*XlwA|7V!a&R}FY}^Sp=(-}w$$D4_VjGQ0a5y255u#; z$JW|N2ek``l-UzMx>WmUSRFOryH+2rrVbFNibbJgrCplWnV4$or}MMajZ?j`eJ*R8 ztZ%Vls`Sk;qpmfn_ow=iZiZii3kvHQ&4)c!daX1~S(ryo6GeY-s`Oh9U|#Mb^h@Rj zQdLKFKFgO;5O1SKb~H=hCL|hGz-SEw-qR-p3-t2jGbJc4^7cNLnWK-{sjUmxizTs` zEbJ2;^v|Gi(g2=~croxtK7ld{xjm|{=U`m9!6=ULw zu*`+L57`p443|D4A=g&2D{*Q-ly$}n(EY^Q_9B8kt?SArmSwr^NiRFsNhK(J@N3mK zQMsIVO6l~qU5$nS^dq>U9oK(v)c%cBh>6>wOV2)luAl7u+JVjvxAlv9vl zcKkSOv#F!=tKFrlVS7o%{Gs2`&U8bvz22Pg@6DIEU47mFVISNpDj@RC)J_5msc{B%g0DLALCxHJUQyE%efqqB@$*tYAHig2 zXSYrdrq2rxMFK44;1Q4=mIJ8DIFpps#;0-$KWKQ;#6~M=I?9*Ie#H*sFJZtC^=<7` za4b2LkR*H5V~0QJ(_xo8f&`|WXr|*JDQXLv&o$H@yY9*sN=hFYj^(eTn4nKpHv4QFX&cQZ zy42SipbPtH1{=^ha$7aM8j8r6t>@z-Fls$^jqzazSRZK0i9A9JvCbXcnD{)InbvoS zWxBI7&i3<2gxub60jjZ-PV!r}>4u$kZ8lwAbp~6RY*NjeFx8Yd=r&P5MwN&>h+vD2 zo_YI6`=S+G?-rWn$3f?hCwR%<@ana39VLgfcJ!$AvIhXby+aVkJdON&Ta^ z_^_PonwXXq1lAJjy^mp$51wLQ+(k3pwRp|5IBQ&#%=O~3z#wDQ&`lU=B)02Dn;ZnH znb7gX=8(7rwx=f=DuMYH31!{6M zO!*{^GzfO*U-+z^&f~aQpWVG^y5BLjB#_vlR_hvf22ZS_FHXXFB1nh`O03bT`&B%Oh=D=(K?&!;$hHo#n_AYyjecyJuO_QWG2-Rp)R|Q*+eCx3-)$kDTG9%$(+I@)tMc2eO!M&U9C&Z-~HrWt&vUoL_ z-9wb?dKZf6RMtyDIr(Lp*A@tq_Ebm6nXBO`cx6mGcFZZ2a9m3cjqBS5&4RR@j*?{e zerXXw&~SN5c3sZqX~Ls`mQH}SLT@UV%QTUhV%#OI!tIOddU zID*w` z8E0xSeL_VLF|l188-DTxgEd8xX8#L@ml0xt0{Aty1jb0-KZ9FHf2g&*OV3UtdYO`4 z>xz7uH=CB8twPAC6Q8UYQ^3R%sL4o#h#z~Q(5%5dJLFH56*y$)C)2Zl4_WbR?9S;~ zV2c}bD6e^OTfQlMevdw`!%s#%d1!6^&ECKY@@=Ycd5BQZ=enn>{jOE#mg`fWzMC8_ z2QZGf>VD}M@Yj`x`&Cmg+uV~T+4Wgh~8sDMOot8B;6EpVI}b* zxEE7r;NW$T4Eb_TetL&F{K?~C3g}XP}j9I4n){>xsGErs>CHzDdzl6 zi1TAYzHr&hyzmsgb~%;TgGRY_2#|x(2Fo3*iRy+EzpD2%lgOvUsVBQ{BFL)b8d+Uu zJ-P(HI9kOj*Wt-0_-|c{eqLAC_Us3L!)uxMLXN+!LR00fuD?F5f@(ou1&hsh z53UV!L)db+ZA8Y^pdrR0)`ofO{z%TF0?#AkC!W7m#%#OZ>!u&(J=i98=9g`W8MD-> zTTeL5;CU>{V3ii#(zRNQ=0ZG_A9-e>*}%Lt{|+N+x6*1PRalA9WY`D60*z0Ws+!Vj z9u*1MZde-Wco(Q%a2HPQG)I4aCI0lfg`~N@L&}UWwf{Mlg=-A_WM)_OY(T#h2E@PT z+n5-t012FTk2Up_mpE7L3}OtA-N=r#LbWEjkQCY?1um(-W9ynOa3(QoY{u zsv|2LqaW7IJ18#Q2!*1?HvdE~rR6 zG$uM35N4KKG2e2NE=G7+%0#vj?U8Xu(yZP%JxL?5SlVN2wP`Q}JN4d5_gEx=xUyD#l*~hpUB$|6lT=v4#Xzaj**3Ru|MXOvERp!Qo6~AZ2Fa0PwLGTN!blVq0#k z;{K~p0=S8DI1mJm9G3WDOQo*XeOwXBAk5EtJ~l#k{*2e@bC@C|4TKbR_RNl@mC-?R zdcLFSh;e^>P{iQNj}QGXyD5r&BHKFuilfu<}?HSl-zK}6}l0r64Qtbs@{QSe8B;w z^r7Q&U-QXX@{e`PvIE!ed~vYHZYcmDvAd54fd0CI)Buvd7#T1R3}P))fb6e6B@RAt zfVEuz!;knA5FP@A10eu53_E~E&(Fit_Q?&Er!Jm19@yG@!L8i?SB4`D0RO}1H#X&8 zasvR+O5|QR2+ZFAxWvlecK;P@_MZ#~d<9GSC&SOUg5~~;A%Oo#jQ{5c!C&(4#o#yo zlaZNT!5&}1;8(D~|6f3!uHNL{`>w1d>*=CnRglbNg_ImaxewV1OS~Ay5Ix z#=flPoq>nbIA3Y`bH0PTl1b~&0O%YOalF~ACG*(LoJ~=Vge9ieC?BO35eCA9y3piu zX+;`N_`KMxN37odl(GKYPc$%1P)Rrr0svgPNQ4eT2LQ-pnsRSx!w>w_DMo96D^_Oj z4Qs`nYd*KqFzX8mZe~BMAuSFC?IU~Olv z*$U<4K3KBHeh>O$e1hB)-Xq4zuQ6E`<1gE7$3G0cY{m;_NfASP8m!|4( z4SQY?da`n^Q7Z~ScImxJQs+#}n0Oed59};|r z*~piAivO$$iwr#hoi=bk`KU5YeTaFaHmN$zDlK+_LWcV8l2L_F(Bq3MW>>xmh^-p* zk@F7Onb?27h_T)mA)h0bi&-M^kB(qL1 zuOnd$v}k9wtdwiz$2;X#hi+)yF<)%O-^yAQ&T<*$yS_iQW@~!^P7ct*G7|+9N!|d! zQw(mzHN3y{aZyG$?K*3){ouZv-FWog6g@i$`aL@Z1Xu4FXn-o_eU1JufBqwfDTm_) zz8!VH7WqF1EWNVrohwaNsc} zd}?~bZ0vm)99XbcED3DB2~lk$!PifdfYM2a&z9cFt9-byRF0~kJ2NAbz+IW$us~Gt zSO$*GaAG-xEzN5++&IqYjSApI)i61HK8EOjy9KE{v8Wu`@l{{W$w_!fmIG$l+`9wy zX&D;kC{e8Vm&?Rb9!IzL>rOinFsLqV7JAO&)puKfucA`-jU?CJd;&@3ZJY5oPNIq0 zvXYuH!!lbQZfTGz=qQ5U?A1pa(*ec!n#>MobvY4 z3l5WPWoMJ;89f?}lMELsPM&V(sQb$_87qrDrkW&rsnZ@7zd5fehHTX;7OV(SnMl3TPzTnvwsVWSYOEwXMQWsd3k z+A8uG6z<|PKB&qe4&^FKgEc1HtnzI|nwlngEE{Hsh!seT>U4jKm1T^Vy1v!dOK|9c zW_@`g;d|k(djx_xx^ew^I>2IX@#aV?jldZw?R`0b#(@DO>Rw^I{pZ$(T9)p{DAn@ z|5Qnpo$bk1aqY;?6cit?-+MWNdr(mW{-|AC=wX6km;2bW5tdi?iHxsPRd^!)%$idJ z!>!^|MO8CX zKl3)3XE!7sTB6jFj2j0}AhN!A=ED1F*BjM|j11>-LGG%Ph_M{fa1%CI6^V8(XT{*B zOH%~sg^fjpwc(YDvh1qFz6_Ss+Z3wg{A*dJO-w?%yUCpAQk~ceJf$=%{ErdN1`9zqoxlKpl4o; zML&_fvZ`P%J2I=J*v`b+6mW#zdl9AU(B_do)PNGCoR0fT^86&SzO3s>rKm1&xN_OW zODm~jcx>d2IpByIdS58mf z(VIM#oWUQ*`r& z&v~?G&2clA5`SUB4jk#;A^zpH`$BMeO)A{}xk;~3-N&#Ok*1#UY-+{%ZL-7CXWWK% z*w(y_SxcS$0uL%kAWZQ#0Urte;9CI{U$EtD0Q**x4*{^vUIQ?oA9w{?yMOt(fB8Of zKq3Z+`%%E-;OiIcD|a08`v9U1&i4PFE7c342@p~zn7Jhzp!^tae#@5p4;%TNL3VA! za(-u=x3^)%|1c5&{9J^yZkxo%zcX&sHq3GxX0r`*`-Oq)gTj5{7r5o{ZPOXPZ92oh y^{m@0`S~OK+jNFsZfn|K^KAC~fN?*I1(G+JkVUAk7t!~KZ^W_C;6D)I0e=Iky*&>A