From d44b8c5e5354625fe9b23b0fa62e040342c6d57e Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 19:13:46 +0700 Subject: [PATCH 01/19] Add run_install input --- README.md | 4 ++++ action.yml | 4 ++++ dist/index.js | Bin 28908 -> 77060 bytes package.json | 2 ++ pnpm-lock.yaml | 33 +++++++++++++++++++++++++++++++++ src/inputs/index.ts | 23 +++++++++++++++++++++++ 6 files changed, 66 insertions(+) diff --git a/README.md b/README.md index 5643aad..e6b9704 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ Install PNPM package manager. **Optional** Registry to download PNPM from. +### `run_install` + +**Optional** If specified, run `pnpm install`. + ## Outputs ### `dest` diff --git a/action.yml b/action.yml index 4da87a9..9de6293 100644 --- a/action.yml +++ b/action.yml @@ -19,6 +19,10 @@ inputs: description: Registry to download PNPM from required: false default: https://registry.npmjs.com + run_install: + description: If specified, run `pnpm install` + required: false + default: 'null' runs: using: node12 main: dist/index.js diff --git a/dist/index.js b/dist/index.js index c1a900018d26643a5e08382b760e3f53ec835f33..96a6802e26b1960cc033d964c8a3db088ff8d16f 100644 GIT binary patch literal 77060 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 literal 28908 zcmdsgd2`#ylIK@}F#R+{3!*5=C)H?$54qd3ZrfqW9Wf)bC5S9acqRc309sa4+|Rzh z%&ZF}(I{bK6s{fv6r8+z7pjS5Tl&AF|T9m4umw7;6%mhmsB~Pd* zS!De>p7h7*q*Ae7K!34Z9w_QCOed30Zu-S}>^`^58y)1`Nm7?{b)aXp&6h3ByXi%8 zb~eh&Je{hoa3^$|s_L|?=d+GoeoObxquzeB)Dzhb%g&hD?hS_*k015aC`5;OIZ4j1>Uvi7cXrD3x_g<`SMv*;WH~JITIF?j zSWI_j`E0sVsmXXd%dvyWM3p-~EqK1=jxOr{vpUC!Sa3R@)CrHhj2}JpHW@7(?r0?F zghdrbX!qD_7uRvwf=_u;UuD(iCjIT6ou$`lR;%*%)`wzT#(A_bB|$nWW_3r|<52;x zHXo{D9F&KupR4Pj?3nh1kkou>&kOY(OwlP5oWV4!R1~?^Wn6f3jpvhb2GERXzPh|w zRJED`DRcFi#*CK3v>skjWkFLc&7?u8=%`oword*QSzL#MFZSg*Fr?~^id-F*9o1!= zi28c#`fInoQaM(xml&Hlqa}~f$&dx#!Jkcu2^@m} z{1ae;R-2m&2W0Rx(zvg9n3}i(s9tR(`Ft{o#zom-Zh@l-RD>Fh`d4Z7<~ld1FC?yj z7*Ty%4ibew2lZ*F@hwD&A?A8{@B`EXe6Q-DO3Kc?M-QR{`I;p~r|dj>7@2}O7d+V8 zLkX>Vc;L{1j^R|DhR5^aP*oL{)EgxB8yFSpUZmM%UMke>qRxClh_cv)*!YUW9r)4JuL_put{fC;ZxhfYVM?P*$l#MsLi zC|`GN^Td8~W1;!mv}Ouv8)=3*JyK&=;oB!CzXPD>KP}Yqr^OsBXp&8dHQ<}Secf<* zj)myC68+yT;!@Qw^VuBxA(>_%>ko7O^7Y&ICuf)q{B|};hpMv^>|BB~hY=3o{S2)7 zSz4)1v^*c&-i9GzdkwaQ<}CO|o0}WpZ%p0+F`%Qe1QDF`yx<1XD8MNOc>$E1gDx{Q z>IbyJbIY2_E@bT#v(#O)=)`<*`vIKa%xk-$RluTpyWn~c0cw3z(vglzJ~c+w2y`^O zB6eoZz7r}Ggt0mdi#+Uy#dr+%&Ij*xpdr1ljd6)4gcn+%YqCg&T}?0tiXmoDO1jXX z^2v>tRnOJM{L;y1J0{2>eE0tK>!WvP&ySwI{|yL~B;js|wdziZ{_jQ`@mOxNmWH^( zVL5+I_^<11mh3@_HUUuiGKo>)PyvsQak@EH-sfF%?}Y!lA+OUir#5ayoluv3smUm)L1WOup!VD>%!DY?!6q9d+^C>&J*ZV{%qbC*KR-Tsa&koMNwXhXo$f;Xf%`7w-92C9YSqk!SJ`BA zrpG2FZTIo+w`gfBFq!Gy%t+75yH~|jL4V!=h0SwOX-AXUv9tg99+ahc zuebl@xqm?98zczMGU&R{v7d|bN_cB@7VvG^g(Ch?uvQ*!Zd$#Al$JvXcB_X#f|6p8 zC#!=(vDn?$YD3Xd`=EDU*H$gHkM>P%)>6B-yQ}-oTWTLZpjwe-LnwOhR5~KuuVhhnz{ZT;=xbv}?Oh1Kyu{PVKnS9_7LAbwVI&#c`DJ)m^tHgi z(wF%bbU^{tLD`+ntE)~0BH~k;49va&T$m)CQg|M~Mmh?O4LY@Cy1A*xl`7J3UKQ6y z!(sSBo!L44>%+X)+v{!9zlTSIoo=nFn&D`0qgXD%eu66d8>*3^FTEtaSZ+WoSZOdG zENil&Y`3>!j6tKSipeJ^x`cm|fhRVjW$KO<9R-sV+c0QpF;eMs?N*ZvnjF5m)Ahe> z$rpXp#?)9_2ia4lN}-n78A-z%9>5?%`N;W9BA7u+&PK03GT+%QGE=Cf(*-ot!c*Zx zOo@YVDNA=V(s*5hv)yG2F_ukYBx1_rg4s6k%AS9;09{%%t$*oJ!5>h?yVLYDG=Vzq z2^QPpEQgx{Vjh%LHb*KFWk)J$q{1Jmv?G~fj8xJ{a(0z#Tx{oPtaq2KoasEt^kKpc zv{jjAV0<_TBCXEpAYKrb^&MFD25_JZff&i$0Dib!w#k%CRUI0o3&B_yG)%l8SofhD zfZ>(ISj8g~^Bn8Nd|d0zv4FPuZdPX#W^GaZB)v3#ppe!T#-yb2DzvlAElUaj&T)1* z_g3oJmoF5Y6s(1k(n5Y1{vzf#Ar=ngfDvp8vogI@;L`k+Hk;IhKWy6o1BWnW`E0t- zTk|3*xnya^o59~l>e2AyNl8W&56(mJd5dg`mTo}~;)wzbPH&Y@N;R5 zy@CvW3rTtc2haTS%BgnLo|F$#AmBm+wAsnvk*a2tzwT~sI^^9Q_#FGtuYij*Cde~4 zAR33@^NI4X*DrXE42|k+s-WfbUO`1G?J_!BXhF=K7K;B{a?Yyv?_M3Nv>aZ&P0Msz zVH;5JjHqD|>RUBV@?{m%B$@|7a6sxG$z&^zyNM#K-Ev7!0uM;* zY%a>J#A|2tfVNF&J-`Qd=4Hudi-I1Q|RVA@y!F5{*; zpw)ZYJ(xC6$}t4$2pvb9r6#&zhs80o{`h^$0=5-jklcwDqO#H?-79DVsxwTM8Y8bH#>3h}-Q&TtBWCB)`UFMy2`9~D#X>-dcUO)u)YpfV+{$~Z85oRQO z+)Bo8ff~8e$%vM)&VL-gdEK3*CEQ|AB&~D9IK|zP`6!%PMV@h9xQ~OG#z9)(3L>U8 zdC4fQu|!RZ284XIk9@lKHuVlcbhOo`cKO{{;Wor)%{bzav3)q1^qI&I#$Dq2KL%)r z9VCzlgrtHQ6r;mzcZstu(;&E5SkJoBLexeywywAMl+{v8nBP)N&~GWGgIF(yYQ%Uk z%|5@(oeB;1MRp*;w+`w6t_F?ppdv4H@EXD#I$L9(5KiEd8=V?_5>W@o2U|yYuBu^~ z&B)em4gr+w>WL)wr=Nwt&V>FAP9sb^uSZw*dxpWw3fVoIsU6(Ks?k z7f90FkO9`lej7xeJ^8r~{b$7--fIdWiJcS(h6kjKuZT_X3oAFjasUt}K1Z_xhh5x+ zE#OPw#3?y@O+#qitI@9TP1e)4vV|KSw(m!k=mg zLv~p~F&6hqFW&9#!Rm9ep4i<+vAKz3!x+CzRh@RX4&7M)9uA@oN}>*YM%+ z^K^oBnnP%ezOr+)i6e|Imuz1817;=BRv%Zpv4zVyPS36-R9DTMD& zUf>LnrQt!+VN{zP$vjA~id>V%2@hh|g_OAfa%y0lSBrSCs=24d7q1rRa#u%GJ(*1I zszrXnT~)xPMwOxKfMtgPhw@z#mdCEx(SYiA8M`ap2k39XRKc*L^Ri&@;jXQ4BUeo) zYG0VBhbioO##CcK7cF5&GSxwjlY`o;5y^g6KcF}oaA4sZnpm*eX?Ff%huQ55SftTU z+7G=B>S%Mbz2)h;e{JBiyb1Db$Z%%eCoY+_z_Do+Ao)b9atqTNraALt8bmDTbPVrM zkU;je~X$6g5It}%$=9k{{ykeK!k@+7kS!0<-l z0oG5_M)bBjWhG^hcgQo``MiC7eZ37~HQk0*%lt}>?jF@RmJCiq-@%5!rpSR}mcFW6 zk};rl%SOBJqC(G=L@uYc@w_I!x2dhEfv$i04cag>oKKN@m%+@gcNj>dB^_L7d`ZYK z_V9=DQ!Er#{Y9(G&|CPzVLBYb947^`1fL?3LViH)V?sR763MEX7Pt_DX9nm+z!o4S z>#hUyi~*x=*|rqY5+T8QfkbbPZ}Q;^_<-Pb_e^xPcM2R!L9Zd-%zB~L=#r!d&f0|# z_+NQ(oy*A7p;-cPYfgV<1ulcYqM2#Q1rDB^ba6sH6ACP`p2bWO#z}1%(J5gLh^^cORcfwuz6Ws*%DK>kVi;yE=q>I#ZTlpbF!j@kF@?0V zdzMge@UOG;bo=io+yC`pySM##kUSvmNdNhPOlW!9;g)#vu#F&hS-H>X3Y2~tQYVT8=!hJ%j7-umpt zaY3vZj(gvW2Sjl0w9+bHHln9hl0vdJyic;ui|CsmM9&XG^zI5m z^ag!9H+!m2Zw4y?97bF^!v-7DYw`I9Qj|L;ic*?EKB}9F9 z$-SKY=a40o9m6cj%F0-fGS%Gz&1um2YSh8hd+h`h-Z^8+l)1wM6CmlHA<{TZWSYe4bQkIx zvo-Jdedi#fi|_KI8w3(U(O5xYPk8Q#HF|cdcTQk)5(7+^%N2{fQosVn^X$~9_f6L zQH>LVJdtoqoW)g4`-azKefWH9Yq^9mCG5~L`BnosW>Uwk~)*Pdy2DH~wD&)~p0W@tX6=Z3tAna%<79?n?&}Xt<1E;E0 z5j`IDFW`WLml{npuWqUx3e+2Q$*}^xL{njj)TkK;LKv$L&C-bWbd%M1+`MC%h+0Ze=8 z>0pg6 ziRpE5b|&dCjOqsdrKnSc{c-qvQPsfg7THVJ$mlK^)Dq(ftDV)?5Ir#OGjJb&Jrpt0 z%k-3SwlnlniM^o*qp~(m$*RVN>MX~NO)N=t=B(oX9lFzo22OK^COHncbb-d&)TB73 zKSoVNj;(l_3`jy30%^1!D+QuvtuRNE||n3&yxY?>S` zh$Gi?aHG9mPnY7(q{9LDkFLaaW?VzKftH2TXk2Z8@)kbBsRM(y$%;UXP(Xm-d8@;f z)qliLjG5Z(jdkfrMU zXh7Z-(?TrRxw)P=E_N|Y}fL`wb-L73kwe0N+8n$WuW5P<&xM{(Fx54Y2<~ zKaJepW8A#pJU7iG&hQ-!eVW#~;7x+NLU6+tHz87w++`ehoK6eNs&|M8(?trWI%*#e zyEu#0z})E($pPc0a>5J}hO#=3kp`Gfd?|*j+N}d>kguo~a7>5-yMf#qa&|LZgpu1w zoHrA6E4ebHw;^0lGyZ>pb`GXZE{>A;<%SO|30cuK^eeoH0K!g=;d|oGA`YnlP6WPB zt8m5Im2wtJ#HmeqZ~%#e^;I!~OWA%3e>*w}59q>tUJ!t7MUO4X`BEO2W=Qc@r>^d|z0{n(2sP(v~Y|ENa(_dvozKvlcMq^6oL z+}`54JAtyW0u-sTcMDKlKUj}g79xU?-gAclrN{*VD8n6JM`5^jOL?;CM0Srwgz}vT zwT^JlMAy^$GP}MeZDn^I;L+z9%Qd7F(HxZ4f;1O63%wU9nxsRLfe3mbrwoB@*e*b9 zJ`(KQ=WtvgrS3Yk(x!@;8I6z@K#GBEFVorM(iq#4559{B$RdS()mCc?`+Gg{oDQM7 zm$(pu!OX{%;Y=|GG#?u+Trt~2W?0rxcvSvG+tqr&?X8|08ALgSO87rD;14YM1#(WZ zYmjPM<|Yko2T#%n(1nK+*rG3}5Jv-px7^5_!}@%thMUPLtT&SKc4b7Q04;7+8Q>Zx zJnoj3D-FM7;AxupFaQ-m=}*sLDJ4~6tLlqCAE%jc&L$gK6`V@4(y^g{w5?e8$P2{-N}TLJ;?Nx zXf@(2rKmxbh(C`_8n=$!Bj!V7ccg+}f=5;ivV{nEiU^h%ALswPeRF(ri`P7mD3s|y zuI3GZM3IC@UbEeV;XBI>x=|y|fuw@grP!N?Yj?P_j3{)GAasu$D8wi^^$t07`oxV< zDA@xc5<2mSo=RfubUP)cAS;j4Gj6 zt-nnGA%|oHX@yA2+8|$<(1TYIhalsM=FtvR&18%>2$v~h!%d8)W@X@)986^t^NRZw ztSqz4fDue^612u2S}s7+VJBfqiZ#EcMFyX{6lr>W<26S&rQ_wsL#kb@G9ptSO&uMy z^}(6vAREb_a}CBt`duPj7v}qh?sD}5*u(Q*x`(6WI~r<@r-iFUeU93;ou~>M07V~m49LX(_6n9jG5n}%FJm8!;pVQJ z9BWrNa#dd!<;OsqO1M!#S@uJ@n-hon7`@9GK5$~U955+bkUa{6Ib_mTYqRQMiImJ_ zASZfWDfTYM5x?Y{+|8Srjq`~PWLl6v-}-FAVFiNvFzckF=4J|7`avckmsMVB?$ z(Ms>2K?V!wAwwM0*a=@1k_ifYmzpA>oO6=zhxDia8Te1Wxf}!mQyFOxLu(#kG(5|t zFTwWPz$I%4rldb0LyVXbV5j)jtpy=2d*sEo(KsO^y|dE1=YS`|J8biG683?Hux7>V z=R1+GBO99`xsQEG&IZx(a(RJVzmGDEHtBd6z1L{L^+dBnV-Eca79&mDPyyFdvgw?z zeds-6{NWYd7;9o8U1KqATDPXDJ5Lry8~2^yLwmRgDw8GJH;b~)X1n06T`hWtqBNj| z*pTRBKE~Sg9cryCCKn3o>7UWy4QGvwbHb8~yff$_6i#8kw{Ljk=4Mlc8`77y+8gvhCs}!s~0U*OchuT zYw++r(#Ox+q|OtzK=Wh3&%46Cf1Bs1fmDtTzP2DhfyOd6ff?C+H_V*!!2PqO3wh!>6A_saz-^#gZI1rrOK{%u zbf_eh=<<1@l3yz@cU}YDF#{7bFPy?z4N#hbD(Q5h#AGL((4?6 zr8}eafNcz);-~)N?d!LHoc($9?)c@K*Km4k0LEO5oQM;Y5vZi#>C4x6hm;F7IHmmE z(Qhx0Pu~3}8XMRxA?8L|(LW7|i$cH1@+$=k+55zgS#i1so(`gCvI8IhZmCR)bky7k z_?}pT%#kTu0M~F0GvxGiZDWHIBf%;8b9XZvim zb!nU7&S8vaj1<`K>!{xyDR17vWlh&6>4H=z+yRH(nZd($4aYH3tLaH9XceOlJq%0l z?#wgX2x2SFW*{O>h#HoOznxcaetZ4okE7dLzmNdkEP2)5h)P+(0v2c%yShdHTyZlJ zM~j1%w&4yrOsk!6%iMMhcL+DQz+ww;i<28=_2!xaCw5U0<+vle{QwE+j51paiB(+y z0I1|P&xIQEaDTuKZ(v2prai<46sS@%jIT=QeXcZeH^#gQJ_I)v7;fVf!Kl1fcycfi z?}!y_lX^^Ua%+8RsNv4Gll5jtG2Sor2(wkVg5%?o8cA2YqV6@mlZq*%CD}lDG5-J0 zH|61@FptPvlxV!cu6dkD6v--kCeOH&W0mqs&4D+bVWtFxV~H$8TZMg**?Zj`;cfTS zyJL=AN<-tlR-m)j28DPq4*q$11sh#u0If+>N!ah>fmeP6RxeP*pvmZvQwElA0Po;g z*6v+0=jl;;Jg!YXa{bLb9EiQ?jCI^f<_5-zUiwd8ichrK@`oV4z~9{%o10oU;Oxtl z%E+Vz;_XSbm4t!31%co({T7JJyTpZTMEq&3ZeXVSl`@K&cn=NX!3d)l$Zu76-H~}m ztHo1nv}RCcB5AyAwa{APaEX7&Nhz0fQ@0wXGxxh6NZ33FN6{@RJZvuwp5ubAKtRI` z?G7~efVOGTZRK|Xa5`88DgVSuMfOYBt7r;Amj~upf8+L2vN?WA8p*;kRWUN-pdn zuf{9PrSJ*Zl!ed=!2hq!=$6svRqSIGt}K>4Jj2SCF&>$8927oD{PYg|(aoRWQAjB7 zu>TmgO&Gy3oSWF)GJeqeiW)7VjgWeU1^-Vma9{|qm9VNLA`+zynpIU@{~C?2p<4}D zn?U+{oyDnw+_Cb@0iE+>CLdT5}xvZ`zBEMMFJg*2DBAi!?=xxBcu25 z*+jsT`263~b9D)w%6)gNI8i5P8zw5rQ2frw*P8OLVo=ljkG!VeBX0lSoHdC=yy=e9 z6|pAG$wa!2Q73|qm2Pb<{N{7Xc5Ed6T@|DI$QbUd&e zzt&U>Zf^a!*}Cz2Sq=#dMZT=&<;(H;6C!!#+O1$yTB49@5q2 zw*&Cy{vfWdkRF1M4{$L7KN|J5-vsy{&)?vJvJ{Ysn)ulNu_2-oaB;L*@kmVZoC=Iv zp&dK{YsmsF+2E(2!4Z!SWF)_5O1>TLfCKMNipx&;Qkaya+d!eim1<-%Y~au`uQ$aU zc{Zd#aE!_uhC^e(RJ<|ccqoKChyy=Z@HOHfQey^)yU*?&@ReWT z;RG~X4Kcr#)YT3n`c*sINIU27#2@*XR;sL*4%MbJWS8xX934BEC&66dGKS}I?aYMQ z;9q;Z>)bN*Q(5$S$jVO!LWIs>5uD%`M))BQ>I+|*1nq^%Pz2a8n%%tzqOvmk(KWlo wg6{2ma-46$YnIy`Uc)_s9m?}=0.4.0' resolution: integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /esprima/4.0.1: + dev: false + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== /expand-tilde/2.0.2: dependencies: homedir-polyfill: 1.0.3 @@ -78,6 +97,14 @@ packages: node: '>=0.10.0' resolution: integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + /js-yaml/3.13.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: false + hasBin: true + resolution: + integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== /mime-db/1.44.0: dev: false engines: @@ -104,6 +131,10 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + /sprintf-js/1.0.3: + dev: false + resolution: + integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= /typescript/3.8.3: dev: true engines: @@ -114,9 +145,11 @@ packages: specifiers: '@actions/core': ^1.2.4 '@types/expand-tilde': ^2.0.0 + '@types/js-yaml': ^3.12.3 '@types/node': ^13.13.5 '@types/node-fetch': ^2.5.7 '@zeit/ncc': ^0.22.1 expand-tilde: ^2.0.2 + js-yaml: ^3.13.1 node-fetch: ^2.6.0 typescript: ^3.8.3 diff --git a/src/inputs/index.ts b/src/inputs/index.ts index 9fa12ab..c99b619 100644 --- a/src/inputs/index.ts +++ b/src/inputs/index.ts @@ -1,11 +1,25 @@ import { getInput, InputOptions } from '@actions/core' import expandTilde from 'expand-tilde' +import { safeLoad } from 'js-yaml' + +interface RunInstall { + readonly recursive?: boolean + readonly cwd?: string + readonly args?: readonly string[] +} + +type RunInstallInput = + | null + | boolean + | RunInstall + | RunInstall[] export interface Inputs { readonly version: string readonly dest: string readonly binDest: string readonly registry: string + readonly runInstall: RunInstall[] } const options: InputOptions = { @@ -14,11 +28,20 @@ const options: InputOptions = { const parseInputPath = (name: string) => expandTilde(getInput(name, options)) +function parseRunInstall(name: string): RunInstall[] { + const result: RunInstallInput = safeLoad(getInput(name, options)) + if (!result) return [] + if (result === true) return [{ recursive: true }] + if (Array.isArray(result)) return result + return [result] +} + export const getInputs = (): Inputs => ({ version: getInput('version', options), dest: parseInputPath('dest'), binDest: parseInputPath('bin_dest'), registry: getInput('registry', options), + runInstall: parseRunInstall('run_install'), }) export default getInputs From bb24f595c2cea975f2e9276452f3d3af66c2d435 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 19:24:07 +0700 Subject: [PATCH 02/19] Add schema generator --- dist/index.js | Bin 77060 -> 77206 bytes package.json | 4 +- pnpm-lock.yaml | 658 +++++++++++++++++- src/inputs/index.ts | 2 +- .../run-install-input.schema.autogen.json | 12 + src/inputs/run-install-input.schema.json | 39 ++ 6 files changed, 707 insertions(+), 8 deletions(-) create mode 100644 src/inputs/run-install-input.schema.autogen.json create mode 100644 src/inputs/run-install-input.schema.json diff --git a/dist/index.js b/dist/index.js index 96a6802e26b1960cc033d964c8a3db088ff8d16f..1dd407fb28d6bbc359ca22981393c7e3acd8d121 100644 GIT binary patch delta 203 zcmZp<#WL+S%Yv->w9>rflFa-(g@VMQ;?$thJkPx1lEj=GjUvtJ= 8.9.0' + resolution: + integrity: sha512-jL88eyhDR/Pena+eBzY9bw8SOED9nET2QPNSgvXpz4XK9t2CBmwtu6YUPzdZCBG6RTSZoQV5VKmsXu4255qVaA== + /@tsfun/prv-option-result-common/0.0.11: + dependencies: + '@types/node': 13.13.5 + tslib: 1.11.2 + dev: true + engines: + node: '>= 8.9.0' + resolution: + integrity: sha512-AIp2Oygr9WD12BG4p+fUEhyGtPnchRVALahzDab2eobkD2IhxRnHsKZh4J3v84faEIuXbnpdfALwGkzaOcgkPA== + /@tsfun/prv-types/0.0.6: + dependencies: + '@types/node': 13.13.5 + tslib: 1.11.2 + dev: true + resolution: + integrity: sha512-s97gvRX2SjGTdU+Odsi6RgsVFi+xNOx3T6Jew2mo7m7Wj6eJmM0HB0HlFPmwIIi2MtXIpSr71TZmRVcMeU3Atw== + /@tsfun/result/0.0.16: + dependencies: + '@tsfun/prv-option-result-common': 0.0.11 + '@tsfun/prv-types': 0.0.6 + '@tsfun/tap': 0.0.10 + '@types/node': 13.13.5 + tslib: 1.11.2 + dev: true + engines: + node: '>= 8.9.0' + resolution: + integrity: sha512-lUpVISAm0RUxRdyVUuAOLBe7ArdrQkepdLz4nML0a/2/WvrDsAIn2PIdRL3eZXqqdyhS2dy+ot5E5vc/RNWOEQ== + /@tsfun/tap/0.0.10: + dependencies: + '@types/node': 13.13.5 + tslib: 1.11.2 + dev: true + resolution: + integrity: sha512-ArfW5g+1BxUXhqWOCOceiR3iviWn6PvDjOHzSBCCw3luYlVJ8JwYMcvj9ZXITBbP33uM8NKbxwzjRGGVckXLdg== + /@types/color-name/1.1.1: + dev: true + resolution: + integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== /@types/expand-tilde/2.0.0: dev: false resolution: integrity: sha512-17h/6MRHoetV2QVUVnUfrmaFCXNIFJ3uDJmXlklX2xDtlEb1W0OXLgP+qwND2Ibg/PtQfQi0vx19KGuPayjLiw== + /@types/fs-extra/8.1.0: + dependencies: + '@types/node': 13.13.5 + dev: true + resolution: + integrity: sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg== /@types/js-yaml/3.12.3: - dev: false resolution: integrity: sha512-otRe77JNNWzoVGLKw8TCspKswRoQToys4tuL6XYVBFxjgeM0RUrx7m3jkaTdxILxeGry3zM8mGYkGXMeQ02guA== + /@types/json-schema/7.0.4: + dev: true + resolution: + integrity: sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== /@types/node-fetch/2.5.7: dependencies: '@types/node': 13.13.5 @@ -32,24 +189,132 @@ packages: resolution: integrity: sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== /@types/node/13.13.5: - dev: false resolution: integrity: sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g== + /@types/yargs-parser/15.0.0: + dev: true + resolution: + integrity: sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + /@types/yargs/15.0.4: + dependencies: + '@types/yargs-parser': 15.0.0 + dev: true + resolution: + integrity: sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== /@zeit/ncc/0.22.1: dev: true hasBin: true resolution: integrity: sha512-Qq3bMuonkcnV/96jhy9SQYdh39NXHxNMJ1O31ZFzWG9n52fR2DLtgrNzhj/ahlEjnBziMLGVWDbaS9sf03/fEw== + /ajv/6.12.0: + dependencies: + fast-deep-equal: 3.1.1 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.2.2 + dev: true + resolution: + integrity: sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + /ansi-regex/4.1.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + /ansi-regex/5.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + /ansi-styles/3.2.1: + dependencies: + color-convert: 1.9.3 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + /ansi-styles/4.2.1: + dependencies: + '@types/color-name': 1.1.1 + color-convert: 2.0.1 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== /argparse/1.0.10: dependencies: sprintf-js: 1.0.3 - dev: false resolution: integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== /asynckit/0.4.0: dev: false resolution: integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= + /balanced-match/1.0.0: + dev: true + resolution: + integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + /better-path-join/0.0.1: + dependencies: + '@types/node': 13.13.5 + tslib: 1.11.2 + dev: true + resolution: + integrity: sha512-JIv4V7rh19/Hg0O5I0l8eSobC3F+aUWaL9D9QQKAKFw4Qj+whdRrlRejrYICPS2NEJ/2vsDjhKur3iFhQf49QQ== + /brace-expansion/1.1.11: + dependencies: + balanced-match: 1.0.0 + concat-map: 0.0.1 + dev: true + resolution: + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + /camelcase/5.3.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + /cliui/5.0.0: + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + dev: true + resolution: + integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + /cliui/6.0.0: + dependencies: + string-width: 4.2.0 + strip-ansi: 6.0.0 + wrap-ansi: 6.2.0 + dev: true + resolution: + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + /color-convert/1.9.3: + dependencies: + color-name: 1.1.3 + dev: true + resolution: + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + /color-convert/2.0.1: + dependencies: + color-name: 1.1.4 + dev: true + engines: + node: '>=7.0.0' + resolution: + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + /color-name/1.1.3: + dev: true + resolution: + integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + /color-name/1.1.4: + dev: true + resolution: + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== /combined-stream/1.0.8: dependencies: delayed-stream: 1.0.0 @@ -58,19 +323,43 @@ packages: node: '>= 0.8' resolution: integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + /concat-map/0.0.1: + dev: true + resolution: + integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + /decamelize/1.2.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= /delayed-stream/1.0.0: dev: false engines: node: '>=0.4.0' resolution: integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /emoji-regex/7.0.3: + dev: true + resolution: + integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + /emoji-regex/8.0.0: + dev: true + resolution: + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== /esprima/4.0.1: - dev: false engines: node: '>=4' hasBin: true resolution: integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + /exec-once/0.1.6: + dependencies: + '@types/node': 13.13.5 + tslib: 1.11.2 + dev: true + resolution: + integrity: sha512-DMCRTmVoGgGJLS+Z7NfaV53QiQTi8XedoBNVWsl5S7ZQGgt587MOKqlu8k/ybtkEEVjkl4RjO4REOJv4v2ZBxw== /expand-tilde/2.0.2: dependencies: homedir-polyfill: 1.0.3 @@ -79,6 +368,38 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + /fast-deep-equal/3.1.1: + dev: true + resolution: + integrity: sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + /fast-json-stable-stringify/2.1.0: + dev: true + resolution: + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + /fast-traverse/0.1.6: + dependencies: + '@types/node': 13.13.5 + tslib: 1.11.2 + dev: true + resolution: + integrity: sha512-/5Ati6Qr9r++gG4R6ANxYH8RxQkZTrUDQF6EuSShgJCIrluPrvVSQRDpVl6SA4V/5nFALlF15OfXG1A3U3U6Mw== + /find-up/3.0.0: + dependencies: + locate-path: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + /find-up/4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== /form-data/3.0.0: dependencies: asynckit: 0.4.0 @@ -89,6 +410,41 @@ packages: node: '>= 6' resolution: integrity: sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + /fs-extra/8.1.0: + dependencies: + graceful-fs: 4.2.3 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + engines: + node: '>=6 <7 || >=8' + resolution: + integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + /fs.realpath/1.0.0: + dev: true + resolution: + integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + /get-caller-file/2.0.5: + dev: true + engines: + node: 6.* || 8.* || >= 10.* + resolution: + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + /glob/7.1.6: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + resolution: + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + /graceful-fs/4.2.3: + dev: true + resolution: + integrity: sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== /homedir-polyfill/1.0.3: dependencies: parse-passwd: 1.0.0 @@ -97,14 +453,73 @@ packages: node: '>=0.10.0' resolution: integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + /inflight/1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + resolution: + integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + /inherits/2.0.4: + dev: true + resolution: + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + /is-fullwidth-code-point/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + /is-fullwidth-code-point/3.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== /js-yaml/3.13.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: false hasBin: true resolution: integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + /json-schema-traverse/0.4.1: + dev: true + resolution: + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + /json-stable-stringify/1.0.1: + dependencies: + jsonify: 0.0.0 + dev: true + resolution: + integrity: sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + /jsonfile/4.0.0: + dev: true + optionalDependencies: + graceful-fs: 4.2.3 + resolution: + integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + /jsonify/0.0.0: + dev: true + resolution: + integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + /locate-path/3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + /locate-path/5.0.0: + dependencies: + p-locate: 4.1.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== /mime-db/1.44.0: dev: false engines: @@ -119,22 +534,152 @@ packages: node: '>= 0.6' resolution: integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + /minimatch/3.0.4: + dependencies: + brace-expansion: 1.1.11 + dev: true + resolution: + integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== /node-fetch/2.6.0: dev: false engines: node: 4.x || >=6.0.0 resolution: integrity: sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + /once/1.4.0: + dependencies: + wrappy: 1.0.2 + dev: true + resolution: + integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + /p-limit/2.3.0: + dependencies: + p-try: 2.2.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + /p-locate/3.0.0: + dependencies: + p-limit: 2.3.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + /p-locate/4.1.0: + dependencies: + p-limit: 2.3.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + /p-try/2.2.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== /parse-passwd/1.0.0: dev: false engines: node: '>=0.10.0' resolution: integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + /path-exists/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + /path-exists/4.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + /path-is-absolute/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + /punycode/2.1.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + /require-directory/2.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + /require-main-filename/2.0.0: + dev: true + resolution: + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + /set-blocking/2.0.0: + dev: true + resolution: + integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= /sprintf-js/1.0.3: - dev: false resolution: integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + /string-width/3.1.0: + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + /string-width/4.2.0: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + /strip-ansi/5.2.0: + dependencies: + ansi-regex: 4.1.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + /strip-ansi/6.0.0: + dependencies: + ansi-regex: 5.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + /tslib/1.11.2: + dev: true + resolution: + integrity: sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg== + /typescript-json-schema/0.42.0: + dependencies: + '@types/json-schema': 7.0.4 + glob: 7.1.6 + json-stable-stringify: 1.0.1 + typescript: 3.8.3 + yargs: 14.2.3 + dev: true + hasBin: true + resolution: + integrity: sha512-9WO+lVmlph7Ecb7lPd9tU84XFUQh44kpAf3cWe/Ym4G5EKw/SS6XGpi1DZDthvxqkIdNSDlWi7FhKfxuIV/3yw== /typescript/3.8.3: dev: true engines: @@ -142,8 +687,109 @@ packages: hasBin: true resolution: integrity: sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + /universalify/0.1.2: + dev: true + engines: + node: '>= 4.0.0' + resolution: + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + /uri-js/4.2.2: + dependencies: + punycode: 2.1.1 + dev: true + resolution: + integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + /utility-types/3.10.0: + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + /which-module/2.0.0: + dev: true + resolution: + integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + /wrap-ansi/5.1.0: + dependencies: + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + /wrap-ansi/6.2.0: + dependencies: + ansi-styles: 4.2.1 + string-width: 4.2.0 + strip-ansi: 6.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + /wrappy/1.0.2: + dev: true + resolution: + integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + /y18n/4.0.0: + dev: true + resolution: + integrity: sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + /yargs-parser/15.0.1: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + resolution: + integrity: sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + /yargs-parser/18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + /yargs/14.2.3: + dependencies: + cliui: 5.0.0 + decamelize: 1.2.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.0 + y18n: 4.0.0 + yargs-parser: 15.0.1 + dev: true + resolution: + integrity: sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + /yargs/15.3.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.0 + which-module: 2.0.0 + y18n: 4.0.0 + yargs-parser: 18.1.3 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== specifiers: '@actions/core': ^1.2.4 + '@ts-schema-autogen/cli': ^0.1.2 '@types/expand-tilde': ^2.0.0 '@types/js-yaml': ^3.12.3 '@types/node': ^13.13.5 diff --git a/src/inputs/index.ts b/src/inputs/index.ts index c99b619..44da578 100644 --- a/src/inputs/index.ts +++ b/src/inputs/index.ts @@ -8,7 +8,7 @@ interface RunInstall { readonly args?: readonly string[] } -type RunInstallInput = +export type RunInstallInput = | null | boolean | RunInstall diff --git a/src/inputs/run-install-input.schema.autogen.json b/src/inputs/run-install-input.schema.autogen.json new file mode 100644 index 0000000..f9f9305 --- /dev/null +++ b/src/inputs/run-install-input.schema.autogen.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://raw.githubusercontent.com/ksxnodeapps/ts-schema-autogen/master/packages/schemas/config.schema.json", + "instruction": { + "compilerOptions": { + "strict": true, + "esModuleInterop": true + }, + "input": "index.ts", + "symbol": "RunInstallInput", + "output": "run-install-input.schema.json" + } +} diff --git a/src/inputs/run-install-input.schema.json b/src/inputs/run-install-input.schema.json new file mode 100644 index 0000000..4a84219 --- /dev/null +++ b/src/inputs/run-install-input.schema.json @@ -0,0 +1,39 @@ +{ + "anyOf": [ + { + "$ref": "#/definitions/RunInstall" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/RunInstall" + } + }, + { + "type": [ + "null", + "boolean" + ] + } + ], + "definitions": { + "RunInstall": { + "type": "object", + "properties": { + "recursive": { + "type": "boolean" + }, + "cwd": { + "type": "string" + }, + "args": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" +} From e373fffa0a4c0c619113c0dfb5fbd53fed288099 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 19:45:31 +0700 Subject: [PATCH 03/19] Use ajv to validate schema --- dist/index.js | Bin 77206 -> 210072 bytes package.json | 1 + pnpm-lock.yaml | 8 ++------ src/inputs/index.ts | 16 +++++++++++++++- .../run-install-input.schema.autogen.json | 11 ++++++++++- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/dist/index.js b/dist/index.js index 1dd407fb28d6bbc359ca22981393c7e3acd8d121..f7c7a068c8fe92d0a61331857d607eafcb512f0e 100644 GIT binary patch literal 210072 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 bfrZ<@`UzA+b(-xF`VUYuO0bB0BG4Ak< literal 77206 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Ϊ(uL3+eIi_7wwPzz4iL2h09Sb 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' resolution: @@ -696,7 +692,6 @@ packages: /uri-js/4.2.2: dependencies: punycode: 2.1.1 - dev: true resolution: integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== /utility-types/3.10.0: @@ -795,6 +790,7 @@ specifiers: '@types/node': ^13.13.5 '@types/node-fetch': ^2.5.7 '@zeit/ncc': ^0.22.1 + ajv: ^6.12.0 expand-tilde: ^2.0.2 js-yaml: ^3.13.1 node-fetch: ^2.6.0 diff --git a/src/inputs/index.ts b/src/inputs/index.ts index 44da578..6f9bdac 100644 --- a/src/inputs/index.ts +++ b/src/inputs/index.ts @@ -1,6 +1,9 @@ -import { getInput, InputOptions } from '@actions/core' +import process from 'process' +import { getInput, error, InputOptions } from '@actions/core' import expandTilde from 'expand-tilde' import { safeLoad } from 'js-yaml' +import Ajv from 'ajv' +import runInstallSchema from './run-install-input.schema.json' interface RunInstall { readonly recursive?: boolean @@ -30,6 +33,17 @@ const parseInputPath = (name: string) => expandTilde(getInput(name, options)) function parseRunInstall(name: string): RunInstall[] { const result: RunInstallInput = safeLoad(getInput(name, options)) + const ajv = new Ajv({ + allErrors: true, + async: false, + }) + const validate = ajv.compile(runInstallSchema) + if (!validate(result)) { + for (const errorItem of validate.errors!) { + error(`${errorItem.dataPath}: ${errorItem.message}`) + } + return process.exit(1) + } if (!result) return [] if (result === true) return [{ recursive: true }] if (Array.isArray(result)) return result diff --git a/src/inputs/run-install-input.schema.autogen.json b/src/inputs/run-install-input.schema.autogen.json index f9f9305..c42a1d7 100644 --- a/src/inputs/run-install-input.schema.autogen.json +++ b/src/inputs/run-install-input.schema.autogen.json @@ -3,7 +3,16 @@ "instruction": { "compilerOptions": { "strict": true, - "esModuleInterop": true + "target": "ES2018", + "lib": [ + "ES2018", + "ES2019", + "ES2020", + "ESNext" + ], + "moduleResolution": "Node", + "esModuleInterop": true, + "resolveJsonModule": true }, "input": "index.ts", "symbol": "RunInstallInput", From 7a5d08caa72c6faf673fce48ca089ec75da28298 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 19:46:36 +0700 Subject: [PATCH 04/19] Update run.sh --- run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/run.sh b/run.sh index 4732f3d..a33b17f 100755 --- a/run.sh +++ b/run.sh @@ -5,4 +5,5 @@ export INPUT_VERSION=4.11.1 export INPUT_DEST='~/pnpm.temp' export INPUT_BIN_DEST='~/pnpm.temp/.bin' export INPUT_REGISTRY=https://registry.npmjs.com +export INPUT_RUN_INSTALL=null exec node dist/index.js From 91d3d7312179459629024110a2cef75b11888d85 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 19:52:48 +0700 Subject: [PATCH 05/19] Correct validation error message --- dist/index.js | Bin 210072 -> 210088 bytes src/inputs/index.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/index.js b/dist/index.js index f7c7a068c8fe92d0a61331857d607eafcb512f0e..53920a663e513b2ac32a005e57e1cc3146fbacc5 100644 GIT binary patch delta 39 vcmbR7l4r$Bo((ZS1cp7WE*#u@;RSqqu~ diff --git a/src/inputs/index.ts b/src/inputs/index.ts index 6f9bdac..0e53520 100644 --- a/src/inputs/index.ts +++ b/src/inputs/index.ts @@ -40,7 +40,7 @@ function parseRunInstall(name: string): RunInstall[] { const validate = ajv.compile(runInstallSchema) if (!validate(result)) { for (const errorItem of validate.errors!) { - error(`${errorItem.dataPath}: ${errorItem.message}`) + error(`with.run_install${errorItem.dataPath}: ${errorItem.message}`) } return process.exit(1) } From 6fe65dc1af30087221de4edd04b15a776cbdcb6a Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 20:01:25 +0700 Subject: [PATCH 06/19] Move run-install to its own module --- dist/index.js | Bin 210088 -> 210346 bytes src/inputs/index.ts | 38 +---------------- .../run-install-input.schema.autogen.json | 2 +- src/inputs/run-install.ts | 40 ++++++++++++++++++ 4 files changed, 43 insertions(+), 37 deletions(-) create mode 100644 src/inputs/run-install.ts diff --git a/dist/index.js b/dist/index.js index 53920a663e513b2ac32a005e57e1cc3146fbacc5..016c5139311eecfe340e22adf7e76e7690ca8a43 100644 GIT binary patch delta 1506 zcmZWpT}T{P6z1G@oBpU(L07A3*NLt(nRVTD6Lnp$C5hl@oy4Do2~}gqb#`6Yj+>d; zjqNI-1e*3W1Ky@7X`!T)QfQ09mXi9=hhl`rA1G;|P#^kGNgonuK|>9_GrNk|mpR}0 z`|g=@&b^;+7k}}v`0EQU5Y0hX)ytyCQ_rftnUtaX8m44J_ISiR;3y(}H&CtlvCCN@ zVbzy55=oyiBgpzRD{|)V533jNyW&tS;J3qx7%OnujI6mM-d@}s@Lt4%Db~0^SX64R z78gk#kF@w_W8EhC`4Xxa3AMFxTsS(T>V`XmV{9z7Uqe zD(=>OQ%X!uCk-~~iz`N-no1k2>Wxw|^XYDF?;$IbQ8Ya)YxEROoeF*7#i zXDDp9p=`kp8%|m{23FL($N~sGY=HBeBdAxw&o+{N=xCNXFU~3!MaG(?9r}v;b_h}3KJqaTD;0A<1GQZlZ zC$E`MW^U~{omQs=QewjSGAXR_m~k__Fs~$aB}@KYfZE)nC4YZ02d zC9J0>mDvEtax$%07f$TP8oi`lLtJ(Ui{$zWjJYJ-#|JFuP_x!O%(8lO zl53GT^2(1;Q*If#lk|V^ki7~5X}AY{RRU&T#}|F7GHb9L=bM^Q6)r50YxiJ{mNT*n zr|A~FzX}~Cw45Ivz;$Zv{{{Xi5jpFm440)}DHr|~oX0>QXSRTp3mlhK>6@V`siYiL zSRuE)1oO zij;naCW!bHz3S-ilyb`-qEDXBr}&+A3VC!JVX|=td1w(yxOp~pVDP~KUO=dT%(6rRgM`qHRVY+fe=Mr3hPY=HznIQ?T?^JN#&DexcSMVVrX-E2k zy$>UClGl~_Y)V&V2TVPy6e{8iL?c5v|E!Xbv#QA%{-k1#YMHG07^ivTJWucVp@X0C z8*)M!OUttd7-d35CqXo2!Ih!m0Q5tWssZqUL01BBz4*$5mX{yta%@h~jZ|7=QQkYN z80NqN$6A)Co+bW7bWkf;W!^nM%k)-&NA+VC86f^J@g=F-PO_&p91T`A%$1bXioM>`dl z;m9Ft@V2^0>zCoe5h0>`2v2*8}LI7N{_8W z5Nj%|!~G{(C34=MlT}O+Z;CWTbi7@IQ9d6f621Bz#GC>d^@Oa&s81id$Z>{GDrC6L|3!bYu74y#;-TF@bM>gtsv|_7mJW zEb*3hj?d#)D3PC`x(4?R-v-(s@_b&y>#ZvpRi05ev9xy^zWVa0M8^E8q9x5aUnsIL zmr@mOeo&%cuP|1z@+#wO6iM7u=`-iztX|VUSD7pw|A#s4I6okiZeC+PI#gx{t8I2M z$ek#DcI+74U1i*uEb_Oweu=P^qe0GEi3;VnM8r1ZTQWj~|7J2dIKt;eB2dQ`6R44J z(gn6a&ulVnRc^P~PJO$~)AY&~BVmBI;0{#`FR^G?SEt*vr2 hg#~i)K=Q+QaxnSH|0gdFPV)I-B20;;@hZnu=wHTM$ expandTilde(getInput(name, options)) -function parseRunInstall(name: string): RunInstall[] { - const result: RunInstallInput = safeLoad(getInput(name, options)) - const ajv = new Ajv({ - allErrors: true, - async: false, - }) - const validate = ajv.compile(runInstallSchema) - if (!validate(result)) { - for (const errorItem of validate.errors!) { - error(`with.run_install${errorItem.dataPath}: ${errorItem.message}`) - } - return process.exit(1) - } - if (!result) return [] - if (result === true) return [{ recursive: true }] - if (Array.isArray(result)) return result - return [result] -} - export const getInputs = (): Inputs => ({ version: getInput('version', options), dest: parseInputPath('dest'), diff --git a/src/inputs/run-install-input.schema.autogen.json b/src/inputs/run-install-input.schema.autogen.json index c42a1d7..1a70dd1 100644 --- a/src/inputs/run-install-input.schema.autogen.json +++ b/src/inputs/run-install-input.schema.autogen.json @@ -14,7 +14,7 @@ "esModuleInterop": true, "resolveJsonModule": true }, - "input": "index.ts", + "input": "run-install.ts", "symbol": "RunInstallInput", "output": "run-install-input.schema.json" } diff --git a/src/inputs/run-install.ts b/src/inputs/run-install.ts new file mode 100644 index 0000000..4e2c265 --- /dev/null +++ b/src/inputs/run-install.ts @@ -0,0 +1,40 @@ +import process from 'process' +import { safeLoad } from 'js-yaml' +import Ajv from 'ajv' +import { getInput, error, InputOptions } from '@actions/core' +import runInstallSchema from './run-install-input.schema.json' + +export interface RunInstall { + readonly recursive?: boolean + readonly cwd?: string + readonly args?: readonly string[] +} + +export type RunInstallInput = + | null + | boolean + | RunInstall + | RunInstall[] + +const options: InputOptions = { + required: true, +} + +export function parseRunInstall(name: string): RunInstall[] { + const result: RunInstallInput = safeLoad(getInput(name, options)) + const ajv = new Ajv({ + allErrors: true, + async: false, + }) + const validate = ajv.compile(runInstallSchema) + if (!validate(result)) { + for (const errorItem of validate.errors!) { + error(`with.run_install${errorItem.dataPath}: ${errorItem.message}`) + } + return process.exit(1) + } + if (!result) return [] + if (result === true) return [{ recursive: true }] + if (Array.isArray(result)) return result + return [result] +} From 9a1617cf46dd37be94dbc1f24bf07794c1d4c0c4 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 20:03:45 +0700 Subject: [PATCH 07/19] Rename install to install-pnpm --- dist/index.js | Bin 210346 -> 210346 bytes src/index.ts | 4 ++-- src/{install => install-pnpm}/index.ts | 0 src/{install => install-pnpm}/run.ts | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename src/{install => install-pnpm}/index.ts (100%) rename src/{install => install-pnpm}/run.ts (100%) diff --git a/dist/index.js b/dist/index.js index 016c5139311eecfe340e22adf7e76e7690ca8a43..83e7641cdce7c59997033d2b681a0ad722558ab4 100644 GIT binary patch delta 108 zcmZ4WnrGE(o()N#HYa?!#>;3rUC@C^ZgMuG@$~cYOl+HXe_G1OWNA5>@u^vRE)(PS zTqdSHF+f#;dzlorKS*HG?P0Po+s^-%>76X2AxN*vbia6}IZT$O)8E81U1YW}vjFO~ L*>1(nT%ZL2`m`qN delta 112 zcmZ4WnrGE(o()N#n2ao@3py~#P0nUCp8W4C+tvw;OBpvOeY(cWXgQhjsabn26XW(= zCZ;_xjD{eEDwAu!&So|O>eAw3zQ}B5U^-nfh)I0<-`z}{+r8qMbbFZ047OLkW_l;f PXaO|9X1f(PbAc8BSl1`o diff --git a/src/index.ts b/src/index.ts index dcfb9aa..8add39b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,11 @@ import { setFailed } from '@actions/core' import getInputs from './inputs' import setOutputs from './outputs' -import install from './install' +import installPnpm from './install-pnpm' async function main() { const inputs = getInputs() - await install(inputs) + await installPnpm(inputs) console.log('Installation Completed!') setOutputs(inputs) } diff --git a/src/install/index.ts b/src/install-pnpm/index.ts similarity index 100% rename from src/install/index.ts rename to src/install-pnpm/index.ts diff --git a/src/install/run.ts b/src/install-pnpm/run.ts similarity index 100% rename from src/install/run.ts rename to src/install-pnpm/run.ts From 1790ca7f76c4c79099196814f87470ca68fcda4d Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 20:24:52 +0700 Subject: [PATCH 08/19] Add pnpm install --- dist/index.js | Bin 210346 -> 211153 bytes src/index.ts | 2 ++ src/pnpm-install/index.ts | 40 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 src/pnpm-install/index.ts diff --git a/dist/index.js b/dist/index.js index 83e7641cdce7c59997033d2b681a0ad722558ab4..e3600f06482727adc6ebc7debf736e0208e8ca00 100644 GIT binary patch delta 1846 zcmZ`)Yitx%6wbY+0i;S>EK5;fI)yURnGUq3h`YTgcC^EzV_RAVElt?&-tCS~XP0@j zwcAO9F+QR($`Ws=NQj~Sz(1OTlR`A`%g}~L6B7d_8c2+gCJH~$L7WCeR(tll(Es!hhUk81|xcc)A&qZ)MDDjCR9@^?m}9&xjY24EG~b! zKo-^PnexzDwIRu8Wb{g>Dxlh~h$SGF85&|(!IWGZw?rKWTP7!u-7WuR(LAN9N*TMh z=1w7yv%dtH?RMjVG&dtQ z3+xapq?*X0rMOc#Bf_;smG!D!Fh1R2R#_j2C)2 z%nGW%@N4iDER(4#_I`+?7+HT3Y$nCyVAsR(6=Y-_?0Y!==Kn+f*^^)l(&BsHfMiif zL0g2{V0Kz-tW9kkXV)0~I)x_{-+}Uy;E=DT#Ye4?d^f5lz!uuS^aOZ(xrQ9e#rct= z110rE4HpNlWO8@{u#04btURic$qDdOsoJoU&vaWj`kEJbiz1a2Pl8HTMQvPk-8SCC zQrfkX+#uJ;sp5K`=OaC6FK37f>6irdbWq-#1g9UR<=uV>+@L9-%b;*RrPFu?kP?mO zGbS=63#W}}40D=4eFfYtqFtE&4YbidZ~7g4uz<>Qe}blYi)6`;C2=qALbAW=A5i@% zR1m39;gYhgL2J8(nVI7ljxL8r;-k)EsgGeL z89oe`6Eq5|C}nEbu@u&CBqh(m)miV>yW|ZClnz^5g4KcxO%|5YZbGs5YrEcAn zvF!-n;gqf z<;b;n+6UG%Ww2$Xtgs={syMD4wmsA*+39G%x#M*+#?AON#fcjWXTCwvO#D?8to%@+<~KHDHlM@`EgLzoY>qcdGv9 zm*5X2i}OR6M!}LiO;=}d8rm?D_ODLE(WUgO+;(4bjdWS5+xGt^r!}EXGb_%IPJ2Kr&v@Q}Ed);l$DS97ls_CZd=X_3`+JnVn3zLe4-ixL zK2t*#)jaR@Y*+geQl8>xqpFO1_6H3a3%)|ZC&;NlE~D>`WwW}G5^4FC_ow<=t)oLL zFSp-x05yM>+nOj&rlOhD+D-eVEFOtcbDJ{9@kd(i_^e0$>-konT;^TPB5Xy$`ATG`MfxXh<+I2<-DVfRe}b!k;~f=r5fGNb3& zO$PT{Z%jhm!In$lW`9mW2q+sKM%($*t5+4iSbPQTUL#Sht0g!JHL5I_AUCpik3%D< z*35Bm*YaqcgfmdbL0{1)6wUgs7SnaP)_VOE;D%leXL50UJT0z=0a+*ra$1rFS&$TR z8y%8`ef!#b`vh5IzkdRL(AYz>@ETX~!7Q|a%D$e3P8XHeS@_{c1zEK=ehMF>Cd#RV zJ0X!{ta}aynCmR;y*s{@mCnMecgK(XKV*G52W7Z982bOn~JjOc@XL; z#zqxY*}^=&JlBD1$ zJ|rd;jg2foA8(bn7U1)HxV^i+gI{?H_!2laa5fnO;t&wKy{5f=_ zp%7?HPCDxCQn$_Na0Ig__0RR91 diff --git a/src/index.ts b/src/index.ts index 8add39b..4273417 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,12 +2,14 @@ import { setFailed } from '@actions/core' import getInputs from './inputs' import setOutputs from './outputs' import installPnpm from './install-pnpm' +import pnpmInstall from './pnpm-install' async function main() { const inputs = getInputs() await installPnpm(inputs) console.log('Installation Completed!') setOutputs(inputs) + pnpmInstall(inputs) } main().catch(error => { diff --git a/src/pnpm-install/index.ts b/src/pnpm-install/index.ts new file mode 100644 index 0000000..5a09a0d --- /dev/null +++ b/src/pnpm-install/index.ts @@ -0,0 +1,40 @@ +import process from 'process' +import path from 'path' +import { spawnSync } from 'child_process' +import { setFailed } from '@actions/core' +import { Inputs } from '../inputs' + +export function runPnpmInstall(inputs: Inputs) { + const env = { + ...process.env, + PATH: inputs.binDest + path.delimiter + process.env.PATH + } + + for (const options of inputs.runInstall) { + const args = ['install'] + if (options.recursive) args.unshift('recursive') + if (options.args) args.push(...options.args) + + const cmdStr = ['pnpm', ...args].join(' ') + console.log('Running', cmdStr) + + const { error, status } = spawnSync('pnpm', args, { + stdio: 'inherit', + cwd: options.cwd, + shell: true, + env, + }) + + if (error) { + setFailed(error) + continue + } + + if (status) { + setFailed(`Command ${cmdStr} (cwd: ${options.cwd}) exits with status ${status}`) + continue + } + } +} + +export default runPnpmInstall From 291e58ad85d11f68c6b31db09a4418890625f8b6 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 21:02:32 +0700 Subject: [PATCH 09/19] Enable post action --- action.yml | 1 + dist/index.js | Bin 211153 -> 211234 bytes src/index.ts | 5 ++++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/action.yml b/action.yml index 9de6293..b204427 100644 --- a/action.yml +++ b/action.yml @@ -26,3 +26,4 @@ inputs: runs: using: node12 main: dist/index.js + post: dist/index.js diff --git a/dist/index.js b/dist/index.js index e3600f06482727adc6ebc7debf736e0208e8ca00..2d517cef3af8b3bb690454988596497eb6f8a054 100644 GIT binary patch delta 535 zcmZ8dJ%|%Q6y~j9btoZ)m{SOImt!aUqjq|Gb5~g1EyN=SgPpvrbGtFQ-DP(+r%Bhw-SM!htqVdVc|5V%X;c3>^MsU{XoB|YB`IuHFpuU$0>C@|;qG91>%;$Y06&5BRL+ERG>jfse-U>6?Y@ zR_mVdq}>q@QhlHPxgEnvW={K)tghK%)-`jF@%-piy8yg6In~aW9(8SB$Q_AN=%k(A ziKA2!I_V1;V?-vIAT$v&OG2k>r`Qw!Y0a6&@uD!5Rl!pGuGqz_D|PDNKDK4mn^y## d%A&5YyOFPx%`pG+T_fjIJ^m*u$|LQ~=5I@FwE+MC delta 437 zcmZ4ViRa=+o(&mN!eO>~dZ|T4`9%SVB^lObiA4&Do2#WxF)}7jU$~4Zar1JS8aBqT z%__>t%#2}^JJd3OoR4Y|Ku)ul)^;x~#$(-#VbcY-F{(->+7_24rB)PZglQ{jDQW6> z!}-$#wlR7GO`HRw!lu92#%Kwol(sYKGlp#s+RivxI5^BU!^Sq42>!cXP~u-s@^&Vnwpx{ zezrjxiQ6qsGfJueEed+iSPHcL#Ct|v!9;B(RVD32AcWG>f39bgmW6XQwUug=w4ok> zDY5&&cn4^X^hd@bpo9B9GG2bI8)oaDl$DxXqL-aoS*%g62?;yfFp!%QHLF2x_14L@ z)iu<~wN0Gfcb7?=F>(8{yG;Covc-BSscDI&IVBpJ)`{hbnI#IzaFM*}%I}$s`SLWa O3lL)4Q{FS}^8^5cH Date: Sat, 9 May 2020 21:15:50 +0700 Subject: [PATCH 10/19] Run pnpm store prune post action --- dist/index.js | Bin 211234 -> 211744 bytes src/index.ts | 7 ++++--- src/pnpm-store-prune/index.ts | 27 +++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 src/pnpm-store-prune/index.ts diff --git a/dist/index.js b/dist/index.js index 2d517cef3af8b3bb690454988596497eb6f8a054..357c0ba6c018e615dfb5755268bcc2b3e7bb0ee9 100644 GIT binary patch delta 7715 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 x7|s=V81ZlF6I!4pNuH%qA6^@m}@JJ$MOa z6EIQ@If;zYU4J%mJ+MToU0zd-$I|jgSZ0))b}66 zPthqOjnMb3TD}ASnjX{@eel z$pBXA;Hb~=Fe_el zB+3d8orZI@k@4^0X^^aX59f@wY1@R|0M2Uhe(eQ3;7o_C`Th5B=*J7nL+Y^)@Y8Xr z;lOe`?=w1$We_sF`*UoVArFMLjFFI?UWA}L1o-Db#7;D_@OFeZv>yU`uzV5J%ToQa zk#MxWeNf!Zk#|4Gqtom?cFC`AyHZc`zQE-v5ZL!#sZ)h7@RTU+<^AZt@Oiz&o5YsV zu@DC4O-9I-0#_Z&S$lY+R8%q6B&aWZh2M!E5^yb4-~RzWhH!uhIfszKk_wWty4E`jMq22<%_tf<7!o$eoB&OiX*BMaMz_%Gay;Lg1Y2Ua8 z57n?LJ(mex1fFL~z`v2%ZB;Qxmli<=h!F6kc0}7bHqfx*K``R{%7fJd(k{ zyO?-&jE=mU!9d81{4;~$Aj!&P;M)jX?@E{+C@B0lYySdSl*x2O3;YV$#Ia1q%t%}> zxi^cUpZx~D^<{+z&4c7_9RpX93XLHD&@t6Ifv>YR!?z^(4n@t7nshBEkm4-Rhd`RM z80S?3rIYWnm=p#ULY~zz*>OP!@967;Am^d`a6Rc6&L|+0n9Z~R&=j1U29f|Vcm2E~ z=BblMFbT0kT_i*)uMRa{^?o3Cvdrep!SJhQ7WDR0ZUphw`a$2gC6BS@U7?3R#Y5*( z=cw^elAh0mpBH38J~NdLqTZFyY^CS>3w$Ffjzb3W^lF@??k{9Mp}6`8$AJ4MM>wWr zl*F@?0!0W?%h*=<+NUX+E?gjnA}~@xomRwrObxWu!c2u^xrL#g^oRxQ6ck#*WE+GC zbAsnsIIt}75N`(NqM(l*A`m< delta 7182 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 Ka{{+H`hNj5xK&&L diff --git a/src/index.ts b/src/index.ts index 0b7d877..ecea472 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,12 +3,13 @@ import getInputs from './inputs' import setOutputs from './outputs' import installPnpm from './install-pnpm' import pnpmInstall from './pnpm-install' +import pruneStore from './pnpm-store-prune' async function main() { - const isPost = getState('is_post') - if (isPost === 'true') return - saveState('is_post', 'true') const inputs = getInputs() + const isPost = getState('is_post') + if (isPost === 'true') return pruneStore(inputs) + saveState('is_post', 'true') await installPnpm(inputs) console.log('Installation Completed!') setOutputs(inputs) diff --git a/src/pnpm-store-prune/index.ts b/src/pnpm-store-prune/index.ts new file mode 100644 index 0000000..cb45e2c --- /dev/null +++ b/src/pnpm-store-prune/index.ts @@ -0,0 +1,27 @@ +import { spawnSync } from 'child_process' +import { setFailed } from '@actions/core' +import { Inputs } from '../inputs' + +export function pruneStore(inputs: Inputs) { + if (inputs.runInstall.length === 0) { + console.log('Pruning is unnecessary.') + return + } + + console.log('Running pnpm store prune') + const { error, status } = spawnSync('pnpm', ['store', 'prune'], { + stdio: 'inherit', + }) + + if (error) { + setFailed(error) + return + } + + if (status) { + setFailed(`command pnpm store prune exits with code ${status}`) + return + } +} + +export default pruneStore From 4457a83971d61ac0947664dafb3c77990fc844c9 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 21:26:17 +0700 Subject: [PATCH 11/19] Test with run_install --- .github/workflows/test.yaml | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a0777bf..9cc7b28 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -65,3 +65,49 @@ jobs: - name: 'Test: install' run: pnpm install + + test_run_install: + name: 'Test with run_install: ${{ matrix.run_install.name }}' + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + pnpm: + - 4.11.1 + os: + - ubuntu-latest + - macos-latest + - windows-latest + run_install: + - name: 'null' + value: 'null' + - name: 'empty object' + value: '{}' + - name: 'recursive' + value: | + recursive: true + - name: 'global' + value: | + args: [-g, npm, yarn, pnpm] + - name: 'array' + value: | + - {} + - recursive: true + - args: [-g, npm, yarn, pnpm] + + steps: + - uses: actions/checkout@v2 + + - name: Run the action + uses: ./ + with: + version: 4.11.1 + run_install: ${{ matrix.run_install.value }} + + - name: 'Test: which' + run: which pnpm; which pnpx + + - name: 'Test: install' + run: pnpm install From 8cdddb18c5cfc63ad471dc84db2edf01305a7b2e Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 21:33:18 +0700 Subject: [PATCH 12/19] Try fixing --- .github/workflows/test.yaml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 9cc7b28..55ab92c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -90,12 +90,22 @@ jobs: recursive: true - name: 'global' value: | - args: [-g, npm, yarn, pnpm] + args: + - --global + - --global-dir=./pnpm-global + - npm + - yarn + - pnpm - name: 'array' value: | - {} - recursive: true - - args: [-g, npm, yarn, pnpm] + - args: + - --global + - --global-dir=./pnpm-global + - npm + - yarn + - pnpm steps: - uses: actions/checkout@v2 From 254676841171657683721dbe5c165ef8dd03d635 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 21:35:09 +0700 Subject: [PATCH 13/19] Add matrix.os to name --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 55ab92c..4e9226b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -67,7 +67,7 @@ jobs: run: pnpm install test_run_install: - name: 'Test with run_install: ${{ matrix.run_install.name }}' + name: 'Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }})' runs-on: ${{ matrix.os }} From b1febf84ed0b7ac9c121fb745b7f025acad7418c Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 21:41:25 +0700 Subject: [PATCH 14/19] Fix pruneStore --- dist/index.js | Bin 211744 -> 211932 bytes src/pnpm-install/index.ts | 8 ++------ src/pnpm-store-prune/index.ts | 3 +++ src/utils/index.ts | 8 ++++++++ 4 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 src/utils/index.ts diff --git a/dist/index.js b/dist/index.js index 357c0ba6c018e615dfb5755268bcc2b3e7bb0ee9..f63bb58fcde3aadbf6add6128e245f6f20ecf769 100644 GIT binary patch delta 5895 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 E9|}V4F8}}l delta 5775 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 diff --git a/src/pnpm-install/index.ts b/src/pnpm-install/index.ts index 5a09a0d..5ea479b 100644 --- a/src/pnpm-install/index.ts +++ b/src/pnpm-install/index.ts @@ -1,14 +1,10 @@ -import process from 'process' -import path from 'path' import { spawnSync } from 'child_process' import { setFailed } from '@actions/core' import { Inputs } from '../inputs' +import { patchPnpmEnv } from '../utils' export function runPnpmInstall(inputs: Inputs) { - const env = { - ...process.env, - PATH: inputs.binDest + path.delimiter + process.env.PATH - } + const env = patchPnpmEnv(inputs) for (const options of inputs.runInstall) { const args = ['install'] diff --git a/src/pnpm-store-prune/index.ts b/src/pnpm-store-prune/index.ts index cb45e2c..ef93bac 100644 --- a/src/pnpm-store-prune/index.ts +++ b/src/pnpm-store-prune/index.ts @@ -1,6 +1,7 @@ import { spawnSync } from 'child_process' import { setFailed } from '@actions/core' import { Inputs } from '../inputs' +import { patchPnpmEnv } from '../utils' export function pruneStore(inputs: Inputs) { if (inputs.runInstall.length === 0) { @@ -11,6 +12,8 @@ export function pruneStore(inputs: Inputs) { console.log('Running pnpm store prune') const { error, status } = spawnSync('pnpm', ['store', 'prune'], { stdio: 'inherit', + shell: true, + env: patchPnpmEnv(inputs) }) if (error) { diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..c4fad7b --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,8 @@ +import process from 'process' +import path from 'path' +import { Inputs } from '../inputs' + +export const patchPnpmEnv = (inputs: Inputs): NodeJS.ProcessEnv => ({ + ...process.env, + PATH: inputs.binDest + path.delimiter + process.env.PATH +}) From 6eb237a86df8f0844b9674e09c8983bccae46468 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 21:43:19 +0700 Subject: [PATCH 15/19] Only warn on failure of post action --- src/pnpm-store-prune/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pnpm-store-prune/index.ts b/src/pnpm-store-prune/index.ts index ef93bac..9ff0887 100644 --- a/src/pnpm-store-prune/index.ts +++ b/src/pnpm-store-prune/index.ts @@ -1,5 +1,5 @@ import { spawnSync } from 'child_process' -import { setFailed } from '@actions/core' +import { warning } from '@actions/core' import { Inputs } from '../inputs' import { patchPnpmEnv } from '../utils' @@ -17,12 +17,12 @@ export function pruneStore(inputs: Inputs) { }) if (error) { - setFailed(error) + warning(error) return } if (status) { - setFailed(`command pnpm store prune exits with code ${status}`) + warning(`command pnpm store prune exits with code ${status}`) return } } From 83681c63a7a2886f605472a9822e75fa9d3d219b Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 9 May 2020 21:50:47 +0700 Subject: [PATCH 16/19] Make logs foldable --- dist/index.js | Bin 211932 -> 212020 bytes src/install-pnpm/index.ts | 4 +++- src/pnpm-install/index.ts | 6 ++++-- src/pnpm-store-prune/index.ts | 5 +++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/dist/index.js b/dist/index.js index f63bb58fcde3aadbf6add6128e245f6f20ecf769..d3c58f06fd8764933609164d19e197ebfefc07a3 100644 GIT binary patch delta 218 zcmccfooCAro()Sr^W^9imn0UIxEJM@7EE6MS&CUtPjB+c&n0F#dZ~FSU||hS>&!Hb zRL$xfz4FAOyv)3GAji5WwWPEtuNEkih9uLR^<{h37sjQhgD98Pu}oZYVz67CAyhu8mXGqIeNvZC2onCIjJc? zu60prNoi4DEl@5EMXtI0%l7gwj7v|6BN?Tk6jYj*mzkHYq*FZIYClu#_9gq7p8HFJ hl$0o>+9sAKW|k-v>!qZoC6?xtXyk3b&CeXE0|18*KAHdk diff --git a/src/install-pnpm/index.ts b/src/install-pnpm/index.ts index da85a61..6952ead 100644 --- a/src/install-pnpm/index.ts +++ b/src/install-pnpm/index.ts @@ -1,11 +1,13 @@ -import { setFailed } from '@actions/core' +import { setFailed, startGroup, endGroup } from '@actions/core' import { Inputs } from '../inputs' import runSelfInstaller from './run' export { runSelfInstaller } export async function install(inputs: Inputs) { + startGroup('Running self-installer...') const status = await runSelfInstaller(inputs) + endGroup() if (status) { return setFailed(`Something does wrong, self-installer exits with code ${status}`) } diff --git a/src/pnpm-install/index.ts b/src/pnpm-install/index.ts index 5ea479b..821e114 100644 --- a/src/pnpm-install/index.ts +++ b/src/pnpm-install/index.ts @@ -1,5 +1,5 @@ import { spawnSync } from 'child_process' -import { setFailed } from '@actions/core' +import { setFailed, startGroup, endGroup } from '@actions/core' import { Inputs } from '../inputs' import { patchPnpmEnv } from '../utils' @@ -12,7 +12,7 @@ export function runPnpmInstall(inputs: Inputs) { if (options.args) args.push(...options.args) const cmdStr = ['pnpm', ...args].join(' ') - console.log('Running', cmdStr) + startGroup(`Running ${cmdStr}...`) const { error, status } = spawnSync('pnpm', args, { stdio: 'inherit', @@ -21,6 +21,8 @@ export function runPnpmInstall(inputs: Inputs) { env, }) + endGroup() + if (error) { setFailed(error) continue diff --git a/src/pnpm-store-prune/index.ts b/src/pnpm-store-prune/index.ts index 9ff0887..792552a 100644 --- a/src/pnpm-store-prune/index.ts +++ b/src/pnpm-store-prune/index.ts @@ -1,5 +1,5 @@ import { spawnSync } from 'child_process' -import { warning } from '@actions/core' +import { warning, startGroup, endGroup } from '@actions/core' import { Inputs } from '../inputs' import { patchPnpmEnv } from '../utils' @@ -9,12 +9,13 @@ export function pruneStore(inputs: Inputs) { return } - console.log('Running pnpm store prune') + startGroup('Running pnpm store prune...') const { error, status } = spawnSync('pnpm', ['store', 'prune'], { stdio: 'inherit', shell: true, env: patchPnpmEnv(inputs) }) + endGroup() if (error) { warning(error) From b78eaea668bfd2f0389346d80cdf06e76dd12fa3 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sun, 10 May 2020 12:00:23 +0700 Subject: [PATCH 17/19] Describe default values --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e6b9704..5de2578 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,11 @@ Install PNPM package manager. ### `registry` -**Optional** Registry to download PNPM from. +**Optional** (_default:_ `https://registry.npmjs.com`) Registry to download PNPM from. ### `run_install` -**Optional** If specified, run `pnpm install`. +**Optional** (_default:_ `null`) If specified, run `pnpm install`. ## Outputs From fb99aeb8e3ddede0c3ffc587f00d9f4ed72d9e4a Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sun, 10 May 2020 12:08:45 +0700 Subject: [PATCH 18/19] Describe run_install in more details --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 5de2578..7cd93e8 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,24 @@ Install PNPM package manager. **Optional** (_default:_ `null`) If specified, run `pnpm install`. +If `run_install` is either `null` or `false`, pnpm will not install any npm package. + +If `run_install` is `true`, pnpm will install dependencies recursively. + +If `run_install` is a YAML representation of either an object or an array, pnpm will execute every install commands. + +#### `run_install.recursive` + +**Optional** (_type:_ `boolean`, _default:_ `false`) Whether to use `pnpm recursive install`. + +#### `run_install.cwd` + +**Optional** (_type:_ `string`) Working directory when run `pnpm [recursive] install`. + +#### `run_install.args` + +**Optional** (_type:_ `string[]`) Additional arguments after `pnpm [recursive] install`, e.g. `[--frozen-lockfile, --strict-peer-dependencies]`. + ## Outputs ### `dest` From 56013f801fcfff4b38b940d06d97b0743c8bb8af Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sun, 10 May 2020 12:14:27 +0700 Subject: [PATCH 19/19] Add more examples --- README.md | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7cd93e8..52d2a08 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ If `run_install` is either `null` or `false`, pnpm will not install any npm pack If `run_install` is `true`, pnpm will install dependencies recursively. -If `run_install` is a YAML representation of either an object or an array, pnpm will execute every install commands. +If `run_install` is a YAML string representation of either an object or an array, pnpm will execute every install commands. #### `run_install.recursive` @@ -54,6 +54,24 @@ Expanded path of inputs#bin_dest. ## Usage example +### Just install PNPM + +```yaml +on: + - push + - pull_request + +jobs: + runs-on: ubuntu-latest + + steps: + - uses: pnpm/action-setup@v1.1.0 + with: + version: 4.11.1 +``` + +### Install PNPM and a few NPM packages + ```yaml on: - push @@ -68,9 +86,10 @@ jobs: - uses: pnpm/action-setup@v1.1.0 with: version: 4.11.1 - - - name: Install dependencies - run: pnpm install + run_install: | + - recursive: true + args: [--frozen-lockfile, --strict-peer-dependencies] + - args: [--global, gulp, prettier, typescript] ``` ## Notes