From ba40777baa376b483db71b5f3ba72fcad92a1cd3 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Fri, 26 Jun 2020 19:09:03 -0700 Subject: [PATCH 1/8] create playground package in CI --- .ado/windows-vs-pr.yml | 5 ++++- .../windows/playground/Playground.vcxproj | 13 ++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.ado/windows-vs-pr.yml b/.ado/windows-vs-pr.yml index 89049d94f61..420ff1d6af9 100644 --- a/.ado/windows-vs-pr.yml +++ b/.ado/windows-vs-pr.yml @@ -261,7 +261,10 @@ jobs: /p:PreferredToolArchitecture=$(MSBuildPreferredToolArchitecture) /p:PlatformToolset=$(MSBuildPlatformToolset) /p:BaseIntDir=$(BaseIntDir) - /p:AppxPackageSigningEnabled=false + + - powershell: | + gci -Recurse packages/playground/windows/ + displayName: List playground folder - task: NuGetCommand@2 displayName: NuGet restore - Playground Win32 diff --git a/packages/playground/windows/playground/Playground.vcxproj b/packages/playground/windows/playground/Playground.vcxproj index 69cd5fe4443..902fd5e81e6 100644 --- a/packages/playground/windows/playground/Playground.vcxproj +++ b/packages/playground/windows/playground/Playground.vcxproj @@ -174,6 +174,16 @@ Samples/rntester.tsx + + True + False + SHA256 + True + True + Always + x86 + 0 + @@ -194,5 +204,6 @@ - + + From 6e4dbeaa797843f4eb9725751beb6ac63dd80cf1 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Fri, 26 Jun 2020 19:49:21 -0700 Subject: [PATCH 2/8] update cert --- .../windows/playground/Package.appxmanifest | 4 ++-- .../playground/Playground_TemporaryKey.pfx | Bin 2512 -> 2528 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/playground/windows/playground/Package.appxmanifest b/packages/playground/windows/playground/Package.appxmanifest index 9e461608a9c..57381ff490f 100644 --- a/packages/playground/windows/playground/Package.appxmanifest +++ b/packages/playground/windows/playground/Package.appxmanifest @@ -7,8 +7,8 @@ IgnorableNamespaces="uap mp"> diff --git a/packages/playground/windows/playground/Playground_TemporaryKey.pfx b/packages/playground/windows/playground/Playground_TemporaryKey.pfx index a65eac5d7734621b46dd55a5e922d480b2c5737b..328efc71c52a2c79d2c98733e8ec4211b5401ea6 100644 GIT binary patch delta 2343 zcmV+?3E1|~6W|jfFoFr(0s#Xsf(e)g2`Yw2hW8Bt2LYgh35f)P3576%34xI!Mt?oG zbDH$;WA*|92haq91lX@^KefCK#j9Eg;Dm1qTA<*!H?pp-ZJS;p(g7ah?4jSxIGrWta`J0#@mo z=$llii`~csrFtbGk}L9iT^bXVu764DEWs9hUQw1ALJA6|s@7Ir^-B8>^Cmr%o=CidePm)1kA*Ta~oz&fJZIX>s-zJfU9T>l@ zmzgdQm{*~gYGshaUGk^mX)f;g*%e@ltmiZ!uLM|wMu06e=B!xHEHGDOtBkSu8$`M0iHuitRr(2U-An7_1ZlphlDRl{9C|Vf2RSW-anD_(Qp~ zeJ4v@T2-qs==16efgwij^7_`bQpx~;WhEEDtsps?!`|rM+aOKxQ*k|GE2Bf#t+lq% z)CZWC)(Bn*)!6PD%$o5$3}`5sT#Q*s7e#N!ob@s$rJL?*MF6etg}4lqth!t zUEQsk5?_wRfu&N~j7@M_1g2BG50SodA1FWw?!HgIL;ls_#7Pc_7Fxt7f;5#ztb?Ua z@a#IJoN233eQW*7Cx5v}LkMOLOKuHlWQ{B7>a$PtJjsBX1K>mH`;Xdvs*jFwefmzV ze{T)~8K4Ddnze)6)0{}otyv`jBKc&QMoY{`J{yH==mSlZcmMRgxPhc>EkGlyt(12} z2K40U%IY%@dNforVF_Nu8jm0#zmEjYzgLlM^j(-FzdcfTMPww=gG#|iARIAuO z`j9D}wx~BhZpR<#J<2l99yZ=hsekAi^OV!O5YkHSYbBj)iI=v^ogeejC|N~y^g362 zIsq`)zVCns6Mx5VBG#!*Fo~Zh*HuS5MA}K0mA%vvAK|0rP?6|N6h!3c1IFjT;5OE? zbRqsm>25?fGc)O63{{NFQ*`wAYdF$u4PxGb~0wB`R@;}KTfwjlOr1f+$0 zMd+n;qbPm<#)1YZu|-Ufpd)qc%#8UwYDmH3<;wmJ}Xg?Bc4qNxnI=g*f93JP&LNQUOFaTiyWdJPz zV*oY)W&kz-EdVqCHvlpKV*o7xVgNA!GXOULEdXTzIRG&LVE{P*H2`D)H2`4%Hvl*Q zWRt-KVjF)32`Yw2hW8Bt2L_;m18^{c18f2T05F0BWs^Pz9e=A2?S;;*K+ysM2hf0m z12~a!%IS$YF-;&f(95&_XN0-s$)wslJ+c&an(z;>X2K)--N~sLu6lZd)Hm4{tv0lC z>Y#;e;NQ5GR9BibwyE$}nQtnG?(Ey+F6CiTKgD!n_3B#!8zEp|kP_Wr@tshED*w-C z9$Mp;TAo6fFMr6GGPoAyhU48LjlV9$t2AohmdMkn=9#qM?n!hL@dk^BqxCJa!9~zB zLj<1XYz9|;)UWCS%W4fMil$jH zmGApARTewCeqwK|=C{C8660IjrjwSy3ge7mm?h7_ExL2pKV*Awp$Z<8MsDr6fbU8ez;{I) z)yYPPPk&BQAKk?T${5eT4A%>-EsULvKze5gvHleM_5};6V-pe~+Cva<%5a(3m}Jas zt2&?ab!K68Xr!mr z3;pbT;Le{H?-jAiYv5RMQFX~AQd8rkIl=_^UZlM)mlZXGqsI|LL|m9oi)$O4-i{~x z9f#$BTo98KBuy8I9_N&R+A{zh=#dD*_^-x|5$OF-Sxvo^0DFcjT6tfHI>aqV-r}^^ zrGNSbQcSXD4wG0ZofGRq>nP{#Kln`n%1^5X+go;HVOZ3()bKUy+oRkRfwvMd zxr;$K4DLO&QdE&Kr4dKeVW^0^SdxX|V2kqD7EqPzrFc^_TQKbE)&^iPYk0KZ@)4Z| zSvL;R0SIsYJ}5Dzoun+%PQ_wStl&UB8Gjmo%e4>cB5ZcRw7*E4Gm5L~z9Ge_Fr-~< zkbXbTPOA{PkPHwryzIXwET-jCXU-I4_jLWh5%dz-0hg4IE-7@X&@6u!*AEgJ9%kT zR34E4t;z{WD81n)DZ`fja^rF%K23~VTXmmntNmZg9G~T1Y29801N7et3nUE4&H|6|^L-1krx$sUP96QX4z`N`$&; ziD{%wxQ5HGW5>3j0?dcXc7IFuT50-eC`pdhA6C9S;*HbtDEgS_ z6h_UuU_^b9Z5IeVj@EDH&Kz_F{B^m{yh&bqZemI%;=J-MNu{sc_E0Y-YVDZ934*CZZ}F2;bcTUD)AsXx5skdfiw38ko#b8(?#+e;~Lzy>c|H-BmIT4Cr?YBM&^`mO_Dv8%%zM}BY&=}a`-w~(3AigaZ zj8P9&hJRPG8H$%}jd=I@7cqTymJXgMRLRd%ovhbW&($0hmNX<2Cpu3$6?uGYfs-OJ z(gwMJ=^S%Dom0OSQh%DIhQ*wl&*>2*duzC@hQ|{jEbVa_x^qz<(uGh_iWj4k#a~r9 zA}dMPC+C+7qogQiW^S13ta*E>U$RXUo;T98DWW+L;yISKfPdz>FlhYW zZL&{7D2@XW*aG8wY`|wA>?U0#pq0|`l9{(RDa79$&%V}n^M9mt`%~d0mQ=EZmn``A z)z+wJqK?`Cxch9>ryonbRJ%f8f;+Kctu(zI#H+}*g0jwG_0QlnV3BXCU+=DDZ$21el=BvHE~H8f`$W+;&G$+((T&QiEgG&Z!U zbKg?+FK<>dQvsfDVje^}M4UV|yEqPCfAr=aR(?W|%zrJG5?hkZ4tjK_aOzN!j)lBU z5>OSuZ@W#&P=5aRP~nnSkm)O!OEfk!vOoG>db9(pMe`zC3n5Z?WbM;Te_rM+p=wGQ z>clm%0-yib7G7y0DwR8&lc^0@vjhe8Nb};H5-n5)@apI|u_Z&oQj02F!X2I;thQu2OOS&5 zgHqEX|JkRkEt=?=Qk}am+l^#>0x99-u1HqBK08Z3Ym8Hj9EW(<&{|7L2Ey-V@zUp+ z`xC$nP~vw@jvg|TmkYQtfz2=z1_>&LNQUH6hP8jPC+GqK2hf0m z11O~wZVR{9X>&$My2g+QsM9g_ZAu*p3bQss&jBUnuIf9k`rI2C4D!ox-;c=Jd!yu4 z=X$AR#wa$izwqvt6xbCLP&PQCq1dfzMSfQn>2&(U1b6pMg^gSFRn zOJ)?OA7hJt%?=Y0$C=By`9Z$izadBcqaw}m8^8BOPh}%X)K+`?f7q3tAYdTc6|orz zqo`DM6suY-eB-#dm4%3hbnUGLOVR#J_$$gtIf zoeO3GNo!0cinEeZ}~PM~X;JN{<+s zOH9%A?|&Cud12#2dXow_;2Oy`wSk|_oFLCuAAahjPa{!)+cgabGL3%7`bCNK4DTGK zdK`TEv62?hCj(c1aAmWu#gYfz6U3d%WFLksM=W6yhHW=l8@XX5MK+q#2WN%KN-OeA z!%`;2ONl}z1#p77I!`-&%CuHFOcY3ynd(VUnSVq0WgG8(I@f>%oAF@A+B^xiRgats zGDn&Da&Pt6)??K4l|F`$Tn_dYc&0zB+{3b33u(`Ozj^sI1@X$#l9)|kVf>Ylry?Y> zWtH~p8X|GgoP@(^QU1I!$^EuD@OJxLWnl(aeyZIB8iG02c%{|J=e4z}8#L#ycWgmE zMt^gaq;ui0uBQ#Vco!BZw*DQ%F?wqyiy>e4JhyKly2VKu zEz*p3KYQP7AtqhEBW!nZr5liVwh_rm=nbNpz-%4wzx#&@G65D8iM*P17vKu|uEwVB zu`fRK*2NnLanNo|SQS?Kp0-Nj%x@Gze0x1K$<#PQ%doVZ9?c=PcMLSft$qkU_n7d(ird`ACUKGk6gbMtyDFaXb-K))?5@yA&3EJyLjnQ^(20#l>Hq)$ From 90c9bf510bc7573e56ad9062ed76f62ccf841cc7 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Fri, 26 Jun 2020 20:11:08 -0700 Subject: [PATCH 3/8] remove thumbprint check --- packages/playground/windows/playground/Playground.vcxproj | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/playground/windows/playground/Playground.vcxproj b/packages/playground/windows/playground/Playground.vcxproj index 902fd5e81e6..182380eee71 100644 --- a/packages/playground/windows/playground/Playground.vcxproj +++ b/packages/playground/windows/playground/Playground.vcxproj @@ -16,7 +16,6 @@ 10.0.18362.0 10.0.16299.0 False - 867D41FE5091AED426000143497EA4DFC29A8097 Playground_TemporaryKey.pfx From b1d23c93d7b39ddb15b5682a74b3e497eb486c64 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Fri, 26 Jun 2020 22:33:28 -0700 Subject: [PATCH 4/8] Run WACK --- .ado/TestWACK.ps1 | 12 ++++++++++++ .ado/windows-vs-pr.yml | 13 ++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 .ado/TestWACK.ps1 diff --git a/.ado/TestWACK.ps1 b/.ado/TestWACK.ps1 new file mode 100644 index 00000000000..c23a0731733 --- /dev/null +++ b/.ado/TestWACK.ps1 @@ -0,0 +1,12 @@ +param([string]$Platform, [string]$Configuration, [string]$OutputPath) + +if ($Configuration -eq 'Release') { + $appxPath = Resolve-Path $PSScriptRoot\..\packages\playground\windows\AppPackages\playground\playground_1.0.0.0_Test\playground_1.0.0.0_$Platform.appxbundle + $appxPath + + if (!(Test-Path $OutputPath)) { + mkdir -Path $OutputPath + } + & "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" test -appxpackagepath $appxPath -reportoutputpath $OutputPath\result.xml +} + diff --git a/.ado/windows-vs-pr.yml b/.ado/windows-vs-pr.yml index 420ff1d6af9..64c2c389876 100644 --- a/.ado/windows-vs-pr.yml +++ b/.ado/windows-vs-pr.yml @@ -262,9 +262,16 @@ jobs: /p:PlatformToolset=$(MSBuildPlatformToolset) /p:BaseIntDir=$(BaseIntDir) - - powershell: | - gci -Recurse packages/playground/windows/ - displayName: List playground folder + - powershell: .ado/TestWACK.ps1 $(BuildPlatform) $(BuildConfiguration) $(Build.StagingDirectory)/WACK + displayName: Test WACK + + - task: PublishBuildArtifacts@1 + displayName: Upload WACK report + condition: succeededOrFailed() + inputs: + pathtoPublish: '$(Build.StagingDirectory)/WACK' + artifactName: 'WACK report $(BuildPlatform) $(BuildConfiguration)' + - task: NuGetCommand@2 displayName: NuGet restore - Playground Win32 From 61517589ea1a07cfe699a260c8a75de8dd82f174 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Fri, 26 Jun 2020 23:07:37 -0700 Subject: [PATCH 5/8] no appx bundling --- .ado/TestWACK.ps1 | 4 ++-- packages/playground/windows/playground/Playground.vcxproj | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.ado/TestWACK.ps1 b/.ado/TestWACK.ps1 index c23a0731733..3910cdf27e3 100644 --- a/.ado/TestWACK.ps1 +++ b/.ado/TestWACK.ps1 @@ -1,8 +1,8 @@ param([string]$Platform, [string]$Configuration, [string]$OutputPath) if ($Configuration -eq 'Release') { - $appxPath = Resolve-Path $PSScriptRoot\..\packages\playground\windows\AppPackages\playground\playground_1.0.0.0_Test\playground_1.0.0.0_$Platform.appxbundle - $appxPath + $appxPath = Resolve-Path $PSScriptRoot\..\packages\playground\windows\AppPackages\playground\playground_1.0.0.0_${Platform}_Test\playground_1.0.0.0_$Platform.appx + gci $appxPath if (!(Test-Path $OutputPath)) { mkdir -Path $OutputPath diff --git a/packages/playground/windows/playground/Playground.vcxproj b/packages/playground/windows/playground/Playground.vcxproj index 182380eee71..deec2955767 100644 --- a/packages/playground/windows/playground/Playground.vcxproj +++ b/packages/playground/windows/playground/Playground.vcxproj @@ -179,8 +179,7 @@ SHA256 True True - Always - x86 + Never 0 From 073b3ce500523c0b9be6eb6c69c344f6c4c98185 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Sat, 27 Jun 2020 00:11:28 -0700 Subject: [PATCH 6/8] parse wack report --- .ado/TestWACK.ps1 | 8 ++++++++ .ado/windows-vs-pr.yml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.ado/TestWACK.ps1 b/.ado/TestWACK.ps1 index 3910cdf27e3..fb626a36386 100644 --- a/.ado/TestWACK.ps1 +++ b/.ado/TestWACK.ps1 @@ -8,5 +8,13 @@ if ($Configuration -eq 'Release') { mkdir -Path $OutputPath } & "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" test -appxpackagepath $appxPath -reportoutputpath $OutputPath\result.xml + + $xml=[xml] (gc $OutputPath\result.xml) + + $supportedApiTest = ($xml.REPORT.REQUIREMENTS.REQUIREMENT | Where-Object -Property TITLE -EQ "Supported API test").TEST; + if ($supportedApiTest.RESULT.'#cdata-section' -eq 'FAIL') { + $errors = $supportedApiTest.MESSAGES.MESSAGE.TEXT -join "`n" + throw $errors + } } diff --git a/.ado/windows-vs-pr.yml b/.ado/windows-vs-pr.yml index 64c2c389876..21c2c58087f 100644 --- a/.ado/windows-vs-pr.yml +++ b/.ado/windows-vs-pr.yml @@ -262,7 +262,7 @@ jobs: /p:PlatformToolset=$(MSBuildPlatformToolset) /p:BaseIntDir=$(BaseIntDir) - - powershell: .ado/TestWACK.ps1 $(BuildPlatform) $(BuildConfiguration) $(Build.StagingDirectory)/WACK + - powershell: .ado/TestWACK.ps1 $(BuildPlatform) $(BuildConfiguration) $(Build.StagingDirectory)\WACK displayName: Test WACK - task: PublishBuildArtifacts@1 From 6b1189620570e823a4ecaa6b29d3779761a08409 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Sun, 28 Jun 2020 00:22:41 -0700 Subject: [PATCH 7/8] exception for __C_specific_handler for now --- .ado/TestWACK.ps1 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.ado/TestWACK.ps1 b/.ado/TestWACK.ps1 index fb626a36386..6cc2dfa0c74 100644 --- a/.ado/TestWACK.ps1 +++ b/.ado/TestWACK.ps1 @@ -1,5 +1,9 @@ param([string]$Platform, [string]$Configuration, [string]$OutputPath) +$exceptions = @( + 'API __C_specific_handler in kernel32.dll is not supported for this application type. Microsoft.ReactNative.dll calls this API.' +); + if ($Configuration -eq 'Release') { $appxPath = Resolve-Path $PSScriptRoot\..\packages\playground\windows\AppPackages\playground\playground_1.0.0.0_${Platform}_Test\playground_1.0.0.0_$Platform.appx gci $appxPath @@ -9,11 +13,12 @@ if ($Configuration -eq 'Release') { } & "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" test -appxpackagepath $appxPath -reportoutputpath $OutputPath\result.xml - $xml=[xml] (gc $OutputPath\result.xml) + $xml = [xml] (gc $OutputPath\result.xml) $supportedApiTest = ($xml.REPORT.REQUIREMENTS.REQUIREMENT | Where-Object -Property TITLE -EQ "Supported API test").TEST; - if ($supportedApiTest.RESULT.'#cdata-section' -eq 'FAIL') { - $errors = $supportedApiTest.MESSAGES.MESSAGE.TEXT -join "`n" + $errors = $supportedApiTest.MESSAGES.MESSAGE.TEXT | Where-Object { $_ -notin $exceptions } + + if ($errors.Length -ne 0) { throw $errors } } From b98f40e0def418757ccda6c37798b364677b44fc Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Sun, 28 Jun 2020 13:55:12 -0700 Subject: [PATCH 8/8] mkdir outputpath --- .ado/TestWACK.ps1 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.ado/TestWACK.ps1 b/.ado/TestWACK.ps1 index 6cc2dfa0c74..0421f35f3a1 100644 --- a/.ado/TestWACK.ps1 +++ b/.ado/TestWACK.ps1 @@ -4,13 +4,14 @@ $exceptions = @( 'API __C_specific_handler in kernel32.dll is not supported for this application type. Microsoft.ReactNative.dll calls this API.' ); +if (!(Test-Path $OutputPath)) { + mkdir -Path $OutputPath +} + if ($Configuration -eq 'Release') { $appxPath = Resolve-Path $PSScriptRoot\..\packages\playground\windows\AppPackages\playground\playground_1.0.0.0_${Platform}_Test\playground_1.0.0.0_$Platform.appx gci $appxPath - if (!(Test-Path $OutputPath)) { - mkdir -Path $OutputPath - } & "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" test -appxpackagepath $appxPath -reportoutputpath $OutputPath\result.xml $xml = [xml] (gc $OutputPath\result.xml)