From c2a90096f660eef96e56fb6abad9668ef56a0d56 Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Wed, 12 Jan 2022 19:45:09 +0100 Subject: [PATCH 1/3] Parallelize cypress #356 --- .github/workflows/cypress.yml | 76 +++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 0d12f79..3af5092 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -8,11 +8,11 @@ env: jobs: # Label of the container job - cypress: + cypress-mobile: strategy: fail-fast: false matrix: - config: ["desktop", "mobile"] + config: [1, 2] # Containers must run in Linux based operating systems runs-on: ubuntu-latest @@ -69,7 +69,77 @@ jobs: with: record: true wait-on: "http://127.0.0.1:5001" - config-file: cypress/config/${{ matrix.config }}.json + config-file: cypress/config/mobile.json + config: baseUrl=http://127.0.0.1:5001 + env: + DATABASE_URL: postgresql://postgres:postgres@localhost/gsevpt_tests + TESTING: 1 + CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }} + CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + cypress-desktop: + strategy: + fail-fast: false + matrix: + config: [1, 2] + + # Containers must run in Linux based operating systems + runs-on: ubuntu-latest + + # Service containers to run with `container-job` + services: + # Label used to access the service container + postgres: + # Docker Hub image + image: mdillon/postgis + # Provide the password for postgres + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: gsevpt_tests + # Set health checks to wait until postgres has started + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + # Maps tcp port 5432 on service container to the host + - 5432:5432 + + steps: + - name: Check out repository code + uses: actions/checkout@v2 + + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: "3.8" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Start server + run: | + flask test create-all + flask test seed + gunicorn -b 127.0.0.1:5001 -w 1 project:app --daemon + env: + DATABASE_URL: postgresql://postgres:postgres@localhost/gsevpt_tests + TESTING: 1 + AUTHLIB_INSECURE_TRANSPORT: 1 + JWT_PRIVATE_KEY: '-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAxMl+DFiwhnoWRiVPcEIstAW66VY39JNo1TG1U10OfaFMuWI8\njcq5VfSRPBdXLRqAJwZi4CZCwOglEvURArf1QTxVBdLpDW75tD6fNOHaHKvX5WPR\nMGC/7Rfo9K/OgEWnQplc/0Me9D8MzTpIA56Uo/H/DE82kGWOMcWdqIA40pHaCZ7i\nWIoD7pS6DcRDt/8o0+IQqhMC4SrjL2HelzXHpg4glgY+GLbvTPOfV/OlFCAWDK3o\nN3wMBYS+TFP2Q/5pXfPCajIrSfF7dHyZU2d/K26A8naKcSUYuJzA8GBXkPx8YObt\nOS5SYYeD5GeGsX3IsVVyk3WqMVN7NXvRqmNjqQIDAQABAoIBABYoJbQYLFAH4Qgm\n3UnjeYsPdhsdpRE5o70VargnKyGEDtJ0uCKy56lA7zVX323ppPI/6tQYGr4DpWD8\nDN1Efy3IMD6Gn8zuaNkdj+lxYJCH3LgsQ/pxekqkvYsHXHXe4dVC1VC8avjPPI7C\n+CbILS5EahYluRwLAzahbH3zafJzXK6qxVCaPBn1QAG/b5FhGCoSSmar+6gxypX1\nIt977gMaZ9sbaRCfQ2BYEeRyWcBvPPWnM1q87Q/s4dFcHplE6ADLtTOAtFzwKne+\n0jP8AvcnQ6/vG7lM7epUfZLyPRt+79PIAj1ndtff10vGwVwoVuhGuwumIp7vMxQq\nF8VC5o0CgYEA/escZHgN25mrUlKhaGWmtxIfqreaLKjCc/mc1pMEfnMAVgrcVUu4\nMiAx6/k6o9CUrPtNUuKktAuAZMAN505it2k9wjwmu+snfgwj2oMKHGsss9yJ19Fc\nlKdoHE4QeHMQWnIqqN/lRza/tfUPlMDLY04gxMZR1R7Y7L2Hf2aLxQMCgYEAxmZ7\najpJResNEiSxFldImwBLjuLhqvOzPYDsqBpwB0gQOJtbKuPPzKB6J8guXVi+DHDz\neTKOAm3BQymb2xRuyvrclFi4a1LWFWsTz+PAMXss2h+TjGm1dkAYt/FiSqyuyLY5\n48igJjdH64G2M4w8eN0YUtKvQRqaZ37jFMbR5uMCgYEAkONbrCilH62sCKmF2KBI\nZSY+U5e4rcsOSkcgq3/wjIbqpi5EU5eFX3Tnh5MLVvZqH9q14JnbCbGWbeb5CAe+\nZJH036SbJZelTVN4EfO8DUNKmsc5EKEyhtCPo7cXxuNBbZq/pOU9W0luU1Gmtmbc\np6mpIR9ZCpcziMMNUjEdiCkCgYB8aoP2Z7rPd8lomU3cHrxPR24amri9xbmfVhwS\nhxG93zkc5n/Tc606O2CfVe+NZjs3/hUQ6d0YNM+/WHZ+el/INmzhMonj87yBDfcM\npVw/K2lDGA4lPZ0oHKXjpCHphkTNZUkESSn1DTGyxFMIHGdHvA6m0axJfW9ae73X\np5611QKBgQC/wOD9Wv6IQLR7f5GQSXrlmiCGmUugd3BG7UXrevYzbm48ePyIIa+e\nPaSvTkZR5Ji5XvajSDhYK1/2qmozk6B1pH1M4jqKD80zZOq8mc9q8lZ9fEIxi5wz\nPVHRdVKT+wEsbeQhxqX/RfaqIi1UcBmwhnZKXutXPon/ZIg7iVoo5g==\n-----END RSA PRIVATE KEY-----\n' + JWT_PUBLIC_JWKS: '{"keys":[{"kid":"default","kty":"RSA","use":"sig","alg":"RS256","n":"xMl-DFiwhnoWRiVPcEIstAW66VY39JNo1TG1U10OfaFMuWI8jcq5VfSRPBdXLRqAJwZi4CZCwOglEvURArf1QTxVBdLpDW75tD6fNOHaHKvX5WPRMGC_7Rfo9K_OgEWnQplc_0Me9D8MzTpIA56Uo_H_DE82kGWOMcWdqIA40pHaCZ7iWIoD7pS6DcRDt_8o0-IQqhMC4SrjL2HelzXHpg4glgY-GLbvTPOfV_OlFCAWDK3oN3wMBYS-TFP2Q_5pXfPCajIrSfF7dHyZU2d_K26A8naKcSUYuJzA8GBXkPx8YObtOS5SYYeD5GeGsX3IsVVyk3WqMVN7NXvRqmNjqQ","e":"AQAB"}]}' + + - name: Cypress run + uses: cypress-io/github-action@v2 + with: + record: true + wait-on: "http://127.0.0.1:5001" + config-file: cypress/config/desktop.json config: baseUrl=http://127.0.0.1:5001 env: DATABASE_URL: postgresql://postgres:postgres@localhost/gsevpt_tests From 8b2666b8de20af9d53a4ea154daaf607315ed232 Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Wed, 12 Jan 2022 20:03:41 +0100 Subject: [PATCH 2/3] Parallelize cypress #356 --- .github/workflows/cypress.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 3af5092..f93a187 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -68,6 +68,8 @@ jobs: uses: cypress-io/github-action@v2 with: record: true + parallel: true + group: "Mobile" wait-on: "http://127.0.0.1:5001" config-file: cypress/config/mobile.json config: baseUrl=http://127.0.0.1:5001 @@ -138,6 +140,8 @@ jobs: uses: cypress-io/github-action@v2 with: record: true + parallel: true + group: "Desktop" wait-on: "http://127.0.0.1:5001" config-file: cypress/config/desktop.json config: baseUrl=http://127.0.0.1:5001 From e2500e441e6af85d471807472ef1d52d2e463324 Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Wed, 12 Jan 2022 20:40:42 +0100 Subject: [PATCH 3/3] Parallelize cypress #356 --- .github/workflows/cypress.yml | 5 +++-- project/api/image/schemas.py | 4 +++- .../translations/de/LC_MESSAGES/messages.mo | Bin 34089 -> 34090 bytes .../translations/de/LC_MESSAGES/messages.po | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index f93a187..4a6ba93 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - config: [1, 2] + config: [1, 2, 3, 4] # Containers must run in Linux based operating systems runs-on: ubuntu-latest @@ -80,11 +80,12 @@ jobs: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # TODO: Optimize because this is just a copy of the first job cypress-desktop: strategy: fail-fast: false matrix: - config: [1, 2] + config: [1, 2, 3, 4] # Containers must run in Linux based operating systems runs-on: ubuntu-latest diff --git a/project/api/image/schemas.py b/project/api/image/schemas.py index c864b48..8006bd8 100644 --- a/project/api/image/schemas.py +++ b/project/api/image/schemas.py @@ -27,7 +27,9 @@ class ImageBaseSchemaMixin(object): class ImageSchema(ImageModelSchema, ImageBaseSchemaMixin): image_url = fields.Method( "get_image_url", - metadata={"description": "Image URL. Append query argument s for size."}, + metadata={ + "description": "Image URL. Append query argument s for size (Smaller side in pixels)." + }, ) def get_image_url(self, image): diff --git a/project/translations/de/LC_MESSAGES/messages.mo b/project/translations/de/LC_MESSAGES/messages.mo index c9c32df33896504bf6df360d6485e781d0a39e70..692b04f9c4647f6147bfe56d5788d53a1e9b5ee9 100644 GIT binary patch delta 2073 zcmXZcZA_L`9LMp)Lkipo2qK2vJSmSxia~C=28L1=Z7lJHtHqefee;aTO_A0G5^E5v z&9YwL%w$-AF&m20u{E}8%k5@uP;9!1ZqP;%F7pMkT77?A=hf%@&vl*uIp=@Qbq)1~ z4)=y$o=9{aHO7?tj7h;7%*Jj^!mqFlzr!?)_8apU=3^v2kLs_)R18?ppz>Ws56)l& z-o->*L_Po4ZyXa(Bc;|DEu;XI_yyd6hwu@s!`;||THpvO@ia!_9ERhfjh9gqu3$8V z)ESe7F}M?pP|y8!jyv!e9g%djp%Qms6!zgd{1i1{5Vi7AOvfNb;eA|#tEh#9)Vr=h zFR=%=V6Kf{#2n&!hlWc1F)G0&)P!T0fs?ou=TSR|Y+x6-1C_8CwZkJAiY>SvkK6uk z)Iv|=CcI+fAZ8Lf_h~3$VxuuV8~{Q>e=PjA3{iS&(DqXz1)$P?syd*?n<4>JAj5F3kZ{qAGkEeOQiz_&7eWacYaZ zum;qTwWG$JLgnejI6RM0%x}J?p%*65gWsZ#;z!g1X6^GOj3s`E+G+SPcia}#-Pwk! zToJCrXHb=>Kvm9<3HUzhYxxY*nBRP(2Hr*OEaY|faulNy`f(!$tbM2>7{ECE0kyDO zn1;WiHsU!>H8BbGULI;gdoT|x&`F?if<^&;h@Ciz+px6Nm}G25t+*F8(XjOfYWz*q zS8&I=h}!u>8%GD+iYB2dor0=ZR)G5JOm@(*0n2bbzKmLVBj#fV?!-}4;(Ms~|3aO8 zOq;u-J*ZOGpq}@jHgFC#{yOStm#lxbQU63bR_V~^6!!){A1p)->_AnfA1R6nVm0o4 zlb;d}pc2QlyPxS^)Y;ddKG#;%g#Da0ECt|%ULmW8O2KZm*4h81`owWB|< z8#kTgrsFw$5@+yLjCh+1hCVF80sI2zQ9JK@ho2UXB9(Q_GL2{H(5Fy>e$-J6p%;TT z{tdPA*beu0C!A(qH(Gm86&S>1ocLdo&eBln9-vAe-f7HJ=*1+g zL|vu^OvO&r#Gj)FhcN}mQJ3#0)TLZOy_b2)o%jiSmv}#_|0YH;znP|?v%P~l%LOdN z-!TR=y7+Hn0hZt|n1|V9(?l=fE_6@}yoSm%i)A>6VVI?J%gD?*(olP}skN%9y76f4 V*d_1yfsodZI(_M5UA~Ln{{S#tCs+Ug delta 2067 zcmXZdeQ4EH9LMo5TR!a0J9l*ty1aYRYuoa9vtW{4hYwi;OZy`d3>(+$9^6dteAb`S z6}n*%YJZH(8Ux#MBu&LoWKdGVl|XZ#;0!caK9Tvy5<`4{_B(&Q&iCBk`JQvW=bWvl zEv36H<({L zv3MJ^aR~MM^Y!N01RCL5v&lFImH2JU!uN3$)?y_#p%&PKN_-X5a1dX@As0VHO*o9> z(CW;lLlEa-1?u;Bo#zkSNJknS&8Wm42CyB2_$6vU7i#6bScFLo;3FK3Pf-i8df!nP zCJf+IEOBu)mJru@G*s%ts081mCj1eLu^*@59n=oSHkf7LY*fO9s2zTcDcFP|+~oRO zQ49S7b<}+>PGW@EdqhJCvo@H0g;Q}H_B*ej65K>B=zr9}f=2(lC74OP5>=TR)Q0w< zO5K5D@CvFj*D)1uA`9|tkcQ5F7A4?5JN##uhkB=_&MN0>RH6i` z)H_}L8LFg*P?bCC;uENi{eZfxmoNwKqQ*aSdZTyxD+-~`vK&?NWmt;M_%0qt?dTu; z6mxf(&BtR{j@NJvj@fOt0M}s@JMjeGLG8SKkJ+2pi&WOLhcuSaQNU3|F^)Ql?=Xx> z7vDpzJY%nayC;F8%;tCT?&ZKvkd%^YHwLBpslk(mh6%KDEW{HJpOE zxC(Wd>ahU#q9*