From e1717c6df6366d3a7120832c3b85927df3157cad Mon Sep 17 00:00:00 2001 From: fremartini Date: Sun, 3 Dec 2023 13:34:41 +0100 Subject: [PATCH 1/3] dockerfile --- docker/Dockerfile | 15 +++++++++++++++ docker/docker_test.sh | 31 +++++++++++++++++++++++++++++++ image.sh | 1 + update_goldens.sh | 9 +++++++++ 4 files changed, 56 insertions(+) create mode 100644 docker/Dockerfile create mode 100755 docker/docker_test.sh create mode 100755 image.sh create mode 100755 update_goldens.sh diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..92a3d22d --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:20.04 + +ARG DEBIAN_FRONTEND=noninteractive +ENV TZ=Europe/Paris +RUN apt update && apt install -y curl git unzip xz-utils zip libglu1-mesa openjdk-8-jdk wget + +RUN useradd -ms /bin/bash developer +USER developer +WORKDIR /home/developer + +ARG flutter_version +RUN git clone https://github.com/flutter/flutter.git -b ${flutter_version} +ENV PATH "$PATH:/home/developer/flutter/bin" + +RUN flutter doctor \ No newline at end of file diff --git a/docker/docker_test.sh b/docker/docker_test.sh new file mode 100755 index 00000000..da24d991 --- /dev/null +++ b/docker/docker_test.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +packagePath=${PACKAGE_PATH:-} +testPath=${TEST_PATH:-} +updateGoldens=${UPDATE_GOLDENS:-} +coverage=${COVERAGE:-} + +# 1. If the first argument is --update-goldens, then updateGoldens is set to --update-goldens +# 2. If the first argument is --coverage, then coverage is set to --coverage +# 3. If the first argument is --packagePath, then packagePath is set to the second argument +# 4. If the first argument is --testPath, then testPath is set to the second argument +# 5. If the first argument is not --update-goldens or --coverage, then shift to the next argument +while [ $# -gt 0 ]; do + if [ "$1" == "--update-goldens" ]; then + declare= updateGoldens="--update-goldens" + shift + elif [ "$1" == "--coverage" ]; then + declare= coverage="--coverage" + shift + elif [[ $1 == *"--"* ]]; then + param="${1/--/}" + declare $param="$2" + shift + shift + else + shift + fi +done + +cd $packagePath +flutter test $testPath $updateGoldens $coverage --no-pub --test-randomize-ordering-seed random +exit \ No newline at end of file diff --git a/image.sh b/image.sh new file mode 100755 index 00000000..e8fb35a9 --- /dev/null +++ b/image.sh @@ -0,0 +1 @@ +docker build --build-arg flutter_version=$flutter_version -t docker_tests $project_dir/docker/ \ No newline at end of file diff --git a/update_goldens.sh b/update_goldens.sh new file mode 100755 index 00000000..3c02ca3a --- /dev/null +++ b/update_goldens.sh @@ -0,0 +1,9 @@ +flutter_version=3.16.2 + +project_dir=$(git rev-parse --show-toplevel) + +flutter_dir=$(which flutter | rev | cut -c12- | rev) + +flutter_cache=~/.pub-cache/hosted/pub.dev/ + +docker run --rm -ti -v $project_dir:/project -v $flutter_dir:$flutter_dir -v $flutter_cache:$flutter_cache -e PACKAGE_PATH="/project/" docker_tests /bin/sh -c "/project/docker/docker_test.sh --update-goldens" \ No newline at end of file From c529cb107a381bdf5e04fa8045c7e1babc1ffad5 Mon Sep 17 00:00:00 2001 From: fremartini Date: Wed, 6 Dec 2023 17:45:48 +0100 Subject: [PATCH 2/3] add README --- docker/README.md | 5 +++++ docker/docker_test.sh | 5 ----- image.sh | 1 - .../stats/goldens/leaderboard_list_entry.png | Bin 5172 -> 5697 bytes .../leaderboard_list_entry_highlighted.png | Bin 4970 -> 4532 bytes update_goldens.sh | 2 -- 6 files changed, 5 insertions(+), 8 deletions(-) create mode 100755 docker/README.md delete mode 100755 image.sh diff --git a/docker/README.md b/docker/README.md new file mode 100755 index 00000000..18d89839 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,5 @@ +To build the docker image used for creating goldens, use: + +```docker build --build-arg flutter_version= -t docker_tests docker/``` + +Where **flutter-version** is obtained using `flutter --version` \ No newline at end of file diff --git a/docker/docker_test.sh b/docker/docker_test.sh index da24d991..1b6fddda 100755 --- a/docker/docker_test.sh +++ b/docker/docker_test.sh @@ -4,11 +4,6 @@ testPath=${TEST_PATH:-} updateGoldens=${UPDATE_GOLDENS:-} coverage=${COVERAGE:-} -# 1. If the first argument is --update-goldens, then updateGoldens is set to --update-goldens -# 2. If the first argument is --coverage, then coverage is set to --coverage -# 3. If the first argument is --packagePath, then packagePath is set to the second argument -# 4. If the first argument is --testPath, then testPath is set to the second argument -# 5. If the first argument is not --update-goldens or --coverage, then shift to the next argument while [ $# -gt 0 ]; do if [ "$1" == "--update-goldens" ]; then declare= updateGoldens="--update-goldens" diff --git a/image.sh b/image.sh deleted file mode 100755 index e8fb35a9..00000000 --- a/image.sh +++ /dev/null @@ -1 +0,0 @@ -docker build --build-arg flutter_version=$flutter_version -t docker_tests $project_dir/docker/ \ No newline at end of file diff --git a/test/core/widgets/components/stats/goldens/leaderboard_list_entry.png b/test/core/widgets/components/stats/goldens/leaderboard_list_entry.png index 4e704788e0a3482b485b8a59865d238085398187..0c3e9b3fe720a5d31403d4fd4881af9efa0a8259 100644 GIT binary patch delta 2707 zcmYLLeOQv`8h@>vTcy^z$_{>Rt+{h5TT`@9#8s!ZwRBtJSEBZ5q3KKo6XA7h)iFc* zn0e44IZEY4Bu%qWBxj~&K&CG!MrfF*gk;EvAaLkh*SXGL&viY|{XEZo-M{v0W zyXsoba)0pnR8RGTb7?j032t7VvVoo>$Wc0nKHG5%rq^9bfD8rdOvf{k(Ui^#@6jaM?LO5${ zwb4F2^)s&1Mr~E89Zi+olJW>JAB$}b&ozK<{?93p1#Pf6WIH~_zpITA--6h!Cw7b z_v`#9#@J-Jjh~U#dw7H0mUl@pJc`j zRI$mPjyRhPq}<=LHz{9>)nwd*>*;iePFJ}hA$+~m-5uU^w~?cZ5lJg%$*F<`t|Mt{ zyIluD2-T*q%DYQ@#b(QQy?ZepK|W^&#O}b)HD(pfaZ-^h!OWv)clq0Ge3iuUrz6MT zlBUS%4Yc?XM^Cj${mF|*$TZFqus2+{*w3GyOr0hrW8w1f#zg5oHV%^@y{C%%EJ}XC zkFAR^zqUxbS^18zDs1cT2CohIDsPbA`uf#YxYid_f5n~mw*tRl20=uSrx)our>!v! z`t{!496Fu8rY)9X=~G;jkz=vi;U-pf!K;$Nvhbp@ACOg|$`|+Su4?4yN!j;xI2Cu` z7$w-r3*Wf3)rEC__9t85%(zo8hh{P+CaGL}E9AHEg!BP(4;CE;zI6qa7)t-pn>U#v z(H3%U*PSym&dVRea8~0+^e39++@(NqYuXsFBf=)hAA3+!sNg)}oO%AKb|a%>q+XUB zo+3fF3CrGC|GII2yS1&4kxO z4yGpGDUl~X=v>l#NHvMd%e##Z_3+gWJ)%~*F}`y*-5)jAb-oSjkCX``?EZmvvU1+0 zPL6-Bd*Qr>L_|ad@tZw-r(?6}R<@}Sd!Z~3-`x}Mjw(-*sr?sZg1I^pZN5;j(FVq1 z1&iesvWJ!uJu1uz8})-u*9_ZrZ^&d`+M2FhY>vz_%@-L8vEFw(D9_kK{72`kd+p~U zoUtjDwRNT~8GH4kS?z|1r^nx?d-^e~`Fq$iwxuZ}c-CP>k>1Sb2Y z>T+sjRx(1GkkRt!;8|UV2LNo%r!Fik91HTtD7qA2Dy>Mxf~%`|o7$*DwFYkG`fS*o zz&d`Ml%H99z|Dh*$4io_)JBemGA_Xn-c=^E2jj8uP!syShvfR1`Wz8ptdOM7mhJLH z$I4Pca;nR_E3~4USwfr9ViKfs;xsQvHg|eDY#) z<`ST|qGhdva}U{Zi(=%aa+!2eZP}~?FY+t8E#J#*7%=b}=JxZrC8BJ$v~S}kvV6^+ zsttyBPCwSY>C_X-C>=%fKg~JqACvRa{#6#W18fLQu~$2#nIx9|U5p{$i?(u-?Tm!AG)1bN4F32ZxTuzsk> z-7$!|O!2B-3Oq=<{SRKTPur2ji}LLq_7)j9>!rMXSZzKlv~&-qw4W$onVtR?oB+p1 zLC`vWsX@Do1}76EPj_CK=ax(h3@c{61CDuOxixteko-}RawDFGG5K%$RWOD-B z;#ro_dZ(^PFCtfi0loX%m|TCqQJf%Yg!iI;4-S1_5ad15{3p{ngK$KZ%P&LFNOZeV zJj+R+toGi%8v)nv+Z!so+tiP5K=OA6FLRb7L*&|*ldD*GKjj!jT8z4Jx(<)5%pd97 zn7=UGkH2|;_J7lmcR*lxM?s5G;#7HnHec&njzIjo#?7x_tjAd|;P#%7!WB5HQ`&&lSzSx+ k)Ok delta 2178 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 A1poj5 literal 4970 zcmeH}`&Uy}7RL`@fvJKxICW%!;B=ODtvXVSh(;kyu_9Gaf$%0!p#}&MBtqno2R^Y@ zQaei{Z>u9T4+uU0$%BXrK~VyP5Hx{cQ$X@C5V#PMkj&-R=~^@Y0QZ-3?^%1Fv+rkr z&)(b0Jwx5J{SprgAV}qan6qLOl86OTzIe}M23D1n)*Da;g28GWu=H=0s*e=%7!t0(lmuBdpkXF25OJ&bM1m3P^P`tN4U-2F52 z@spd>=+2ngySUjyH-i5i^Y^k;M=0WOYixqxxV<%O19L~wiMxNv&iuBGa+G(q-!**D z@<2X{!1f&wT|3)=&}2_mBY1UhtEZszrTeh8%GZyu1>^jsK;e|^@uu49jQ|7(>wi54 z$N0h3&K`gl&Tats9HPP#e)eksDBIuzoBRmu062N8+_dI&x^nEarb~AwIeU9P1CQIA zi5rQ?YLN|PNmwlyPB~Orlty7-WU@Q}a^39mE=`G4??yaiN91zASt`!Uoc|*mlHlsfwvq5{NG31<%p~+Pz~*Dyp!OrrS!0-h**O&D zBFYwWy@Npb9HSi~h(zhT z7-V4zy2ag_UZ*6L?4Qtnn}` za%n;i*RkY%qVI6Aa=DjKCld?xSdF{QC??Q^pD9%#-d3q;`I`n8I@Sen8@ zS^p)xU8vwtW}*Y<2P6m@?=x2~AECjjyghC7CQSuGZ*3;akVvSvE)Io~ZEe`V#=u&+ zM+$_qowcTD1l!5=%no80TCzLeG(TN5KM+dXqPLp9=hX>S<@>YJ((YLoyXbKKCIdRi z%sDRpYlv!Z80GoGcsq+{iPCl9%iIjBM+2~tE!cfV1XOOgs~FBi3imMnU@pjnWN z&(GNE3P4TUjGpA%sw*|0uHI)B;C!n>#wye+8s#{^n(}|_w-o@dhckA&vKp!eZcpst z$_9JtS9a_9&8a8dwE6PAGB^0l2Ge(xP_z4tjwr9KRZ)HY06hI$oDob*OK`}(>U~k+ z5^cPD-qI{toRgjHX-cvKsRRG8Bsa$tT}g}%;$&hY%heVD#=qEMS=WZQz*C&`nV72hkTa7rKj#2a{q7Tsh1u`1!7;^xgv!})E2&M%n_If630g3Z zDh5{R8eQ9_|n2v?VpiGF(OGNcSbN@f!i z6I=NF1JEoE$9hydXd`G0k%9ZS9Lv{+2F(Pc1rHZgolf3t2!fEj*%y7Q^!`%uM#M?=>|V zU8D4rO70Dyh2#lss5Bel!>gmT#Q)Uh;+TK(8@N382i8>BF_>J!SHH?2+Cp6kTqk)i zoM6RB8DKg9jpB0)#wRIe-K?K@E;iwGrRhc*ZnS6s&OW_QunD8{heB|yn`0C{gIPQr zgX`*>f|V85Fih1hyv~SDk@HPOKjCyAZ{9RnJLk=HE2>g!BhC?B9HGl(VMlIeToqvq z%JR5S&w%|kr;5pNqgdS8`A!EdlLd42Y59C233FK`z$_cXMJth&#A1Cr-{B+CN`;3E zaqmQOwmgI)OcP*6{o|Sfe0@c-N_dy+N2%If4CYj~s^}CUdefxyjViNX` zq79)Ybq%LSifJN9agMh~-r9}!uRWS|pkgRe!Z(~iv)~1}Lmb%LRgvih7t9D47x1gW zT!d4R{-^)Z--4hDdb!CHPC|Lcw!}tKF#P6BPlbEmA9~>$xD>g4zGCp#|JOEGO;-u5 w5?Cd$N??`1DuGo3s{~dFtP=Qd0v7MwN43XGPboITmvs>KO~k>buT#(e2ld*G;Q#;t diff --git a/update_goldens.sh b/update_goldens.sh index 3c02ca3a..80989a53 100755 --- a/update_goldens.sh +++ b/update_goldens.sh @@ -1,5 +1,3 @@ -flutter_version=3.16.2 - project_dir=$(git rev-parse --show-toplevel) flutter_dir=$(which flutter | rev | cut -c12- | rev) From c8ee11acec5866d05204d6bc02f2af3b9ac3b8ba Mon Sep 17 00:00:00 2001 From: fremartini Date: Thu, 7 Dec 2023 19:19:41 +0100 Subject: [PATCH 3/3] goldens --- .../stats/goldens/leaderboard_list_entry.png | Bin 5697 -> 5172 bytes .../leaderboard_list_entry_highlighted.png | Bin 4532 -> 4970 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/core/widgets/components/stats/goldens/leaderboard_list_entry.png b/test/core/widgets/components/stats/goldens/leaderboard_list_entry.png index 0c3e9b3fe720a5d31403d4fd4881af9efa0a8259..4e704788e0a3482b485b8a59865d238085398187 100644 GIT binary patch delta 2178 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 k)Ok diff --git a/test/core/widgets/components/stats/goldens/leaderboard_list_entry_highlighted.png b/test/core/widgets/components/stats/goldens/leaderboard_list_entry_highlighted.png index a6135c9abb79fee02b598425f2e7e7d8a9272fa9..a9bc5645c9deaf1b610ca85bdc391bb696d82347 100644 GIT binary patch literal 4970 zcmeH}`&Uy}7RL`@fvJKxICW%!;B=ODtvXVSh(;kyu_9Gaf$%0!p#}&MBtqno2R^Y@ zQaei{Z>u9T4+uU0$%BXrK~VyP5Hx{cQ$X@C5V#PMkj&-R=~^@Y0QZ-3?^%1Fv+rkr z&)(b0Jwx5J{SprgAV}qan6qLOl86OTzIe}M23D1n)*Da;g28GWu=H=0s*e=%7!t0(lmuBdpkXF25OJ&bM1m3P^P`tN4U-2F52 z@spd>=+2ngySUjyH-i5i^Y^k;M=0WOYixqxxV<%O19L~wiMxNv&iuBGa+G(q-!**D z@<2X{!1f&wT|3)=&}2_mBY1UhtEZszrTeh8%GZyu1>^jsK;e|^@uu49jQ|7(>wi54 z$N0h3&K`gl&Tats9HPP#e)eksDBIuzoBRmu062N8+_dI&x^nEarb~AwIeU9P1CQIA zi5rQ?YLN|PNmwlyPB~Orlty7-WU@Q}a^39mE=`G4??yaiN91zASt`!Uoc|*mlHlsfwvq5{NG31<%p~+Pz~*Dyp!OrrS!0-h**O&D zBFYwWy@Npb9HSi~h(zhT z7-V4zy2ag_UZ*6L?4Qtnn}` za%n;i*RkY%qVI6Aa=DjKCld?xSdF{QC??Q^pD9%#-d3q;`I`n8I@Sen8@ zS^p)xU8vwtW}*Y<2P6m@?=x2~AECjjyghC7CQSuGZ*3;akVvSvE)Io~ZEe`V#=u&+ zM+$_qowcTD1l!5=%no80TCzLeG(TN5KM+dXqPLp9=hX>S<@>YJ((YLoyXbKKCIdRi z%sDRpYlv!Z80GoGcsq+{iPCl9%iIjBM+2~tE!cfV1XOOgs~FBi3imMnU@pjnWN z&(GNE3P4TUjGpA%sw*|0uHI)B;C!n>#wye+8s#{^n(}|_w-o@dhckA&vKp!eZcpst z$_9JtS9a_9&8a8dwE6PAGB^0l2Ge(xP_z4tjwr9KRZ)HY06hI$oDob*OK`}(>U~k+ z5^cPD-qI{toRgjHX-cvKsRRG8Bsa$tT}g}%;$&hY%heVD#=qEMS=WZQz*C&`nV72hkTa7rKj#2a{q7Tsh1u`1!7;^xgv!})E2&M%n_If630g3Z zDh5{R8eQ9_|n2v?VpiGF(OGNcSbN@f!i z6I=NF1JEoE$9hydXd`G0k%9ZS9Lv{+2F(Pc1rHZgolf3t2!fEj*%y7Q^!`%uM#M?=>|V zU8D4rO70Dyh2#lss5Bel!>gmT#Q)Uh;+TK(8@N382i8>BF_>J!SHH?2+Cp6kTqk)i zoM6RB8DKg9jpB0)#wRIe-K?K@E;iwGrRhc*ZnS6s&OW_QunD8{heB|yn`0C{gIPQr zgX`*>f|V85Fih1hyv~SDk@HPOKjCyAZ{9RnJLk=HE2>g!BhC?B9HGl(VMlIeToqvq z%JR5S&w%|kr;5pNqgdS8`A!EdlLd42Y59C233FK`z$_cXMJth&#A1Cr-{B+CN`;3E zaqmQOwmgI)OcP*6{o|Sfe0@c-N_dy+N2%If4CYj~s^}CUdefxyjViNX` zq79)Ybq%LSifJN9agMh~-r9}!uRWS|pkgRe!Z(~iv)~1}Lmb%LRgvih7t9D47x1gW zT!d4R{-^)Z--4hDdb!CHPC|Lcw!}tKF#P6BPlbEmA9~>$xD>g4zGCp#|JOEGO;-u5 w5?Cd$N??`1DuGo3s{~dFtP=Qd0v7MwN43XGPboITmvs>KO~k>buT#(e2ld*G;Q#;t literal 4532 zcmeH~{a4f19mj7_1o0GbKIF9HA*bDGST}<F4o2#H8Ymgb2NAcQ>a(jWT6)_-8<*_x*X@bFZH)$bTv3l^6iPOUHhlcM57=PTanyjXQJUlkFL4~z|Qhxc{yhqdG_sIrKM$; z;74fEn9!f?)6=5&JaaC!`L!~nlVs9TD4%=!%nSo*km;4*8y0XtIkBJFQlgu2^V(_r9QKl{kPyBbNtx z)sGi-L#0ZJ&90gCe31aa$WGMq8xh(`de3K@tA({v`ZkRR_AL@1hppR*IBfGFm<@dGrOfg1kUEXfVm?jFaKYVZ+wfuLN zOE>&{&o!%cHS;2!{wV^W;~pMGJ|`7mIVW(mSMYeZ(e)^yBoYNGqwH_9>5J=!B^G~c zKgrZrm;-;FlQDQy-?~b(CN=qBPaUOx|J2R80aUklBh7S+X+x|1R6^j>(_BT} z_<_StgWMSm)~Ut`?p>rL0^Z$2pvzpLWy=YEwSR%-x$SMr4;hsU3^W~0e6S#?pI}9e ztnxClgVx6t;@+ul9#1Kk%e$C?q3R;DWYnA`O21RI{*1;atbW_tZ}w89T7Uw7K|-D^ z`d=@G0$(XK2OV|Epz-{@C61ExC#);$9Ky-5x_i*c{hsWV)ED+PcKZsKrMRTf^u zt2J+9Yj}cM72~G>oE%<3kr`6`3?mJ0TY|PD9>#s(0J7qRPUBKn_TN!Q*wo{V{Xwsd7T+)VVQ^PbKDv};}z7_(o36V(sSVb^Dm z5C9nF;{v$GS>}~dyL$_GPW~I^J=R2T1xoy|R2{r2FgjEBBA2NaRwMvRA020{NqAg} z(_Xf6u>7gSvxW<$!a^)J>Dns;lLo&9F5hUZij9rcuULg;5?bHsjYFO!n5H6+@(izYSkZOvFNPUb{(a0zjKtl_}MK;iQ9Z}2PA^$S2bZ`SE zsdnZz(3U9uW0TeB2OIUU`s4JMFNk8(VdzRVe@8_b&g2u8@zZnm;@wY%`jD@BivY0Q zyZ!q*F>hueS_JpktUnx83>v_&9Y+ucrt9F`?7x#Mqt5xV@W$-LWnh zxR=fJxcc z?jD<$)2HM)OyPC_YVfG#H@mo0+EAxZpD8e_<6m`7m#72H&4?x_TY_qs!eo~#9ue`I zyt7PNbfrSlFYtXTA{3e}b+0DW#qEQ9l#Hf%Y|c7Wffdr}&Uc8_TDqPo!Gc$nGOvf-pH-x+-&zlD@ai-okhQCw5-Yz+mw{sXrXKR8R+_+M!aCnTJZ z?`te9hOijIVhA57|9kp|$q*((m<<1yWN@>-(0{XE^}&m?@G=FCy;YDmkXw1>KlEAC A1poj5