diff --git a/.github/workflows/maestro-test.yml b/.github/workflows/maestro-test.yml index e3b7a36b..1ed59b94 100644 --- a/.github/workflows/maestro-test.yml +++ b/.github/workflows/maestro-test.yml @@ -60,6 +60,7 @@ jobs: name: android-artifacts path: ./android/app/build/outputs/apk/release/*.apk + run-maestro-tests: runs-on: ubuntu-latest needs: build-android @@ -110,8 +111,10 @@ jobs: id: run-tests uses: reactivecircus/android-emulator-runner@v2 with: - api-level: '24' - arch: x86 + api-level: '34' + target: google_apis + arch: x86_64 + profile: Nexus 6 ram-size: '8192M' heap-size: '4096M' disk-size: '10G' @@ -126,4 +129,4 @@ jobs: with: name: TestResult path: | - video.mp4 + *.mp4 diff --git a/.github/workflows/publish-beta.yml b/.github/workflows/publish-beta.yml index 903d1806..fddf05fd 100644 --- a/.github/workflows/publish-beta.yml +++ b/.github/workflows/publish-beta.yml @@ -239,12 +239,6 @@ jobs: exit 1 fi - - name: 💎 Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.0' - bundler-cache: true - - name: 📦 Install dependencies run: yarn install --network-concurrency 1 diff --git a/maestro-tests/flow.yaml b/maestro-tests/flow.yaml index 0278f1e7..927d9563 100644 --- a/maestro-tests/flow.yaml +++ b/maestro-tests/flow.yaml @@ -3,6 +3,7 @@ appId: com.jellify - clearState # clears the state of the current app - launchApp - runFlow: login.yaml -- runFlow: search.yaml +- launchApp - runFlow: musicplayer.yaml +- runFlow: search.yaml - runFlow: settings.yaml diff --git a/maestro-tests/login.yaml b/maestro-tests/login.yaml index a3c11585..dc55000d 100644 --- a/maestro-tests/login.yaml +++ b/maestro-tests/login.yaml @@ -29,3 +29,7 @@ appId: com.jellify text: "Music" - tapOn: id: "let_s_go_button" +# Close the app to ensure app is logged in +# before next start +- stopApp + diff --git a/package.json b/package.json index fa1ebaaf..aa2bc9e4 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ }, "dependencies": { "@jellyfin/sdk": "^0.11.0", - "@react-native-community/cli": "^19.1.0", + "@react-native-community/cli": "19.0.0", "@react-native-community/netinfo": "^11.4.1", "@react-native-masked-view/masked-view": "^0.3.2", "@react-native-picker/picker": "^2.11.1", @@ -96,8 +96,8 @@ "@babel/runtime": "^7.27.6", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.31.0", - "@react-native-community/cli-platform-android": "18.0.0", - "@react-native-community/cli-platform-ios": "18.0.0", + "@react-native-community/cli-platform-android": "19.0.0", + "@react-native-community/cli-platform-ios": "19.0.0", "@react-native/babel-preset": "0.80.1", "@react-native/eslint-config": "0.80.1", "@react-native/metro-config": "0.80.1", diff --git a/scripts/maestro-android.js b/scripts/maestro-android.js index 0b9e9a14..bf533f7b 100644 --- a/scripts/maestro-android.js +++ b/scripts/maestro-android.js @@ -35,7 +35,10 @@ async function stopRecording(pid) { } ;(async () => { - execSync('adb install ./artifacts/app-x86-release.apk', { stdio: 'inherit', env: process.env }) + execSync('adb install ./artifacts/app-universal-release.apk', { + stdio: 'inherit', + env: process.env, + }) execSync(`adb shell monkey -p com.jellify 1`, { stdio: 'inherit' }) const recording = spawn('adb', ['shell', 'screenrecord', '/sdcard/screen.mp4'], { diff --git a/yarn.lock b/yarn.lock index b77052da..2c0a35ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1720,78 +1720,58 @@ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.7.tgz#eb5014dfd0b03e7f3ba2eeeff506eed89b028058" integrity sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg== -"@react-native-community/cli-clean@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-19.1.0.tgz#d7fe6c719796410f07fd7db0c3b1c8d1a760b33b" - integrity sha512-0X5/rscu0UjgQ3lc4sY5HmL/Z6FiaFANwsBZBnbaBIANzf/pnLIiry+YkhajMpstmnu8i+xZav+F3/uXqZNYIw== +"@react-native-community/cli-clean@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-19.0.0.tgz#1a1f3fcd77b1c6a72d27132a09590b9511d15c05" + integrity sha512-Br+bxxEKXpikzlBLeAv3Bh1DRGrveJmULEG6Q9XPHzPOtRZcRlcDcBidjVwu8XGJdYiplvFdK6cC2sxCM2Mbvw== dependencies: - "@react-native-community/cli-tools" "19.1.0" + "@react-native-community/cli-tools" "19.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config-android@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-android/-/cli-config-android-18.0.0.tgz#9f154a05142d881f9f4950246f1d9bcd2ae2b8d0" - integrity sha512-pgnhEO2cmOeb+bBFEBZFYjeFjDTqWoV0JTorTiugj9bb4RQRCl8cr35baVlBGhxAuaio3722CsJ9GRF1oHjP8w== +"@react-native-community/cli-config-android@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-android/-/cli-config-android-19.0.0.tgz#b1e5194b01474518221aab3b2d236121f97c2713" + integrity sha512-TDd6qdjVjGKuLUEJdPtBJIUOZAJ+oLLiejdrVsfJplJWlFnJVmUAv2M7yT69U+5kh/fGaaHGtsyDekK0B4Gtbg== dependencies: - "@react-native-community/cli-tools" "18.0.0" + "@react-native-community/cli-tools" "19.0.0" chalk "^4.1.2" fast-glob "^3.3.2" fast-xml-parser "^4.4.1" -"@react-native-community/cli-config-android@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-android/-/cli-config-android-19.1.0.tgz#d225902b297e85bdbaa552eb38c1b74823fb1690" - integrity sha512-IlIs9iawZvvzrXsKrHGS+iGt9ixfcwmtXRSdxygQMX3po+H2T1PJnnh+Shum5ja9hw3R+cqTb4kj3YsaFo4VTQ== +"@react-native-community/cli-config-apple@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-apple/-/cli-config-apple-19.0.0.tgz#f7339c5cd5529bcabdd17480a69dfd9bbbd3f7f2" + integrity sha512-apIOz46ZseD/eL4LjOTR3UH6UEXSj6bHK3SPA6JmcxY8q8brnAjUxzNC7FGeKBcUbeLbRyXplIuxuOrBpcX3QQ== dependencies: - "@react-native-community/cli-tools" "19.1.0" - chalk "^4.1.2" - fast-glob "^3.3.2" - fast-xml-parser "^4.4.1" - -"@react-native-community/cli-config-apple@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-apple/-/cli-config-apple-18.0.0.tgz#ab7ea261e51e3ebe0bacce93bfa010fadd3e2ac2" - integrity sha512-6edjTt3mlNMFBuB/Xd6u0O7GEkhJiKvQgmcoBH18FsNy5cpiHDwQsG8EWM5cHeINp1gMK845qq9fFsTko6gqyQ== - dependencies: - "@react-native-community/cli-tools" "18.0.0" + "@react-native-community/cli-tools" "19.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config-apple@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-apple/-/cli-config-apple-19.1.0.tgz#b6ffe31e89ead4d0f3a0b78354b07dde52e97f5f" - integrity sha512-2nJtMgWfW+YDhVcwspo3Pnnaqo/QMFUBFK1jUhI3pD5XLXnoY3jq1kb43o1Nvj1ADLewGqZnDqcSxG0Pd7P98Q== +"@react-native-community/cli-config@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-19.0.0.tgz#d2a0fdd00ea61e96368366b6af7aeded35ce8477" + integrity sha512-HyZOVqnUIs5WlsARqEG/um9cz+XJNIalCkrUeb5MLpxejnWFVLc3hiYoFZhb6KHKj8edg9TotOM0VbzURSYAfA== dependencies: - "@react-native-community/cli-tools" "19.1.0" - chalk "^4.1.2" - execa "^5.0.0" - fast-glob "^3.3.2" - -"@react-native-community/cli-config@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-19.1.0.tgz#f78808d65288c9b9dfda4a54452d9ca03b722a31" - integrity sha512-OHcXRwjaN6a6MVc8Y/vn9sY2xMj1eXO86GogzV0fR3Pk3Fz1Kj5lerTjY9jKkskdRbpetfpAibeSgqxJ4I838g== - dependencies: - "@react-native-community/cli-tools" "19.1.0" + "@react-native-community/cli-tools" "19.0.0" chalk "^4.1.2" cosmiconfig "^9.0.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-doctor@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-19.1.0.tgz#7e9e2dc5aed1693d4a7e3739d38a4c025873572b" - integrity sha512-HtwFDTgJfw6md86O2a30OxodU6hoZTU8KGq8p1tMa55KD7DmHCM3F+MENOuxIjVjcmcFnY5WA5deHDBLHmH9uw== +"@react-native-community/cli-doctor@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-19.0.0.tgz#eca938f5323dd33f5fe919529480ec819e71932e" + integrity sha512-z+fhaQjS0zvWnJ8+gZStSZS2hsF1Lge3g8OthBrzoBPlkmpxeID/H2dEZOY7W9D7ngY/CaCmpQxLzaJVOjlrvw== dependencies: - "@react-native-community/cli-config" "19.1.0" - "@react-native-community/cli-platform-android" "19.1.0" - "@react-native-community/cli-platform-apple" "19.1.0" - "@react-native-community/cli-platform-ios" "19.1.0" - "@react-native-community/cli-tools" "19.1.0" + "@react-native-community/cli-config" "19.0.0" + "@react-native-community/cli-platform-android" "19.0.0" + "@react-native-community/cli-platform-apple" "19.0.0" + "@react-native-community/cli-platform-ios" "19.0.0" + "@react-native-community/cli-tools" "19.0.0" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -1803,70 +1783,41 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-platform-android@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-18.0.0.tgz#6bc69b0cccaa8d8138d31eb9b449e17528cd8f63" - integrity sha512-3Y3RleN/des1C3oRS6s6fDvFYKN0KwsLrYFRpVx9vzdDnH1OGyFJOy4DbrruSPtdNiHUpvvHnOOxeLMj0+/tmw== +"@react-native-community/cli-platform-android@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-19.0.0.tgz#a540f5709dbf0eeff8f987ff283433e71743791b" + integrity sha512-oY5ztWIZxa7EWiQHNG5RXhx/8DA7t4EPiu0qizuz+tV6sAiDcnPQv4hRYF3+wyeIXk/NJjxnYQe9xeQ0Yt1X4A== dependencies: - "@react-native-community/cli-config-android" "18.0.0" - "@react-native-community/cli-tools" "18.0.0" + "@react-native-community/cli-config-android" "19.0.0" + "@react-native-community/cli-tools" "19.0.0" chalk "^4.1.2" execa "^5.0.0" logkitty "^0.7.1" -"@react-native-community/cli-platform-android@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-19.1.0.tgz#d892392b04f6789830fb5f796dc19741ca498c69" - integrity sha512-8XSMoCDvjIOxyutSHOCdoYonfXWQUL+FtLu3Uqm6baXj5eInqDmc0ws4CbUgvg5sGTo484Lez8aTpQwThf3YTA== +"@react-native-community/cli-platform-apple@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-19.0.0.tgz#6cc10764accafcc00f5cdce001738e8886504a61" + integrity sha512-nSuPAaGSDxhsIUzr3JSa9AaQ3f5si6S2+J7FJxTLGuJ2hXrbDXtwOUmtmln09U8cg8Yewa9zh6rjTLVSsFvbAA== dependencies: - "@react-native-community/cli-config-android" "19.1.0" - "@react-native-community/cli-tools" "19.1.0" - chalk "^4.1.2" - execa "^5.0.0" - logkitty "^0.7.1" - -"@react-native-community/cli-platform-apple@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-18.0.0.tgz#044b5a57ec81960f5bdbcf44f18f2fe7931fa5f7" - integrity sha512-zD18gdP5Wr8BSLJ79xtHuPYcg2Vi/nL+WsGsPm7TZjzR5ZU2WbY/tZ+qTGVTQYhQaah+92sU+Dam7gStMrF/fA== - dependencies: - "@react-native-community/cli-config-apple" "18.0.0" - "@react-native-community/cli-tools" "18.0.0" + "@react-native-community/cli-config-apple" "19.0.0" + "@react-native-community/cli-tools" "19.0.0" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.4.1" -"@react-native-community/cli-platform-apple@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-19.1.0.tgz#a427c666da2a1d9c834d75ab8b4c1d6bb58438d6" - integrity sha512-7sEZbEfhJYRo2SSLC2qT+2x494/CoIm7h4/jmy9S+AJ5+ImZQBCkSqAkX9yO79eVtVH9FDJjdrso4rn1Ts4r1Q== +"@react-native-community/cli-platform-ios@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-19.0.0.tgz#cda8518875ae61217a41a6950ec4b70c1766280a" + integrity sha512-oi8p8ccbnk9VYMAjqowB2zicUbCyl/DwD0mdTMivX/YQNIflAIFvzq6p76EP4J3E0/IPu9S0IpgVPCBdTyiSlg== dependencies: - "@react-native-community/cli-config-apple" "19.1.0" - "@react-native-community/cli-tools" "19.1.0" - chalk "^4.1.2" - execa "^5.0.0" - fast-xml-parser "^4.4.1" + "@react-native-community/cli-platform-apple" "19.0.0" -"@react-native-community/cli-platform-ios@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-18.0.0.tgz#75ccaddf974d5e3ca65a9d7ace0b4cafe7df4a44" - integrity sha512-05Nvkkre/4Gao1TYqyP1wGet8td1dAH0CLJKqLNl9Te6ihnrQ8/8OhjIna5xw0iEFr9An8VdLfaPu1Dgv2qAnQ== +"@react-native-community/cli-server-api@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-19.0.0.tgz#e50e93b881c733e11fc9305144492d23d6452b22" + integrity sha512-udcSGC9hrWOGqB4S5L8cH8wgckbrZfc0iF6bH2b2/QalJ3vD016WDoZ6R6fyiyB/u8YsFJ3bnb6tk0tKInKWjg== dependencies: - "@react-native-community/cli-platform-apple" "18.0.0" - -"@react-native-community/cli-platform-ios@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-19.1.0.tgz#dcb9d8f69fda17420f57c14c4476e28de375d98b" - integrity sha512-z85zYgFK62EX2HclMvLD3yaYWgW57SMT4Wv6O5wyFCWvv9LP97vm0aTORgmCdcqlov2RV7dxhLGQF6t2PTqGxA== - dependencies: - "@react-native-community/cli-platform-apple" "19.1.0" - -"@react-native-community/cli-server-api@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-19.1.0.tgz#c3e1ce37aa748c588ad526e06835939d5fc78b57" - integrity sha512-YvFS8aTHfs+vnxEBFnBThkwzDm60B6OyajiYAn4c+m10vsEnExrurMWdmANMyKG0dM2LjADqkFvqUARtO/+1jQ== - dependencies: - "@react-native-community/cli-tools" "19.1.0" + "@react-native-community/cli-tools" "19.0.0" body-parser "^1.20.3" compression "^1.7.1" connect "^3.6.5" @@ -1877,10 +1828,10 @@ serve-static "^1.13.1" ws "^6.2.3" -"@react-native-community/cli-tools@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-18.0.0.tgz#742330d3315bc78f1e57c03969231252f6584a29" - integrity sha512-oR6FcDEcSDYos79vZy4+Tj8jgAE0Xf5HEiRXMJFGISYLRx7tvslSaK8SodUOW9TZe2bCZOb5QSvj8zeMpORmxg== +"@react-native-community/cli-tools@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-19.0.0.tgz#cf51c11c0e08cc0bf397c610ee7170f6cc278d2c" + integrity sha512-O6qGE+1xZOOJY43CcjL3E6xtVx5m6TDEVzysIJ0jHjjE1QqYijx6W8VuWebmA08MfX4JCE2jzUrwx2Ns2GguGg== dependencies: "@vscode/sudo-prompt" "^9.0.0" appdirsjs "^1.2.4" @@ -1893,40 +1844,24 @@ prompts "^2.4.2" semver "^7.5.2" -"@react-native-community/cli-tools@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-19.1.0.tgz#40a543f5671f75746b07ad1d2acec6da0513a84e" - integrity sha512-JjTL5fj77v1urcHYcqnd4ZBTO52ORYzOqxMdDmJdadwh08iMguGfJ1rXNyybBSTyK/Ev60upo3sIm2A26nWydg== - dependencies: - "@vscode/sudo-prompt" "^9.0.0" - appdirsjs "^1.2.4" - chalk "^4.1.2" - execa "^5.0.0" - find-up "^5.0.0" - launch-editor "^2.9.1" - mime "^2.4.1" - ora "^5.4.1" - prompts "^2.4.2" - semver "^7.5.2" - -"@react-native-community/cli-types@19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-19.1.0.tgz#01824eb0dae29c9296d5ba92b66de6dbfd2bae96" - integrity sha512-MEF7WBG17hQOusrphgEjbojqAoGkIwtYg0HhcJ+/MRLMQg6jty6K98gr6VYmjphXGkAPx1T/AN8/DmWmlw/atw== +"@react-native-community/cli-types@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-19.0.0.tgz#fe4266eac8ce8ea58bee1a253af9a4ff3543241a" + integrity sha512-fpnpy6iLX9Uohh83vWRsfi3wMfFT8C8TiKrMiln2e9rnoyZwZqm3gnz8pDUnldmFkaOjKxW0FAiRXxwhJGebsw== dependencies: joi "^17.2.1" -"@react-native-community/cli@^19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-19.1.0.tgz#5d531644a0f1b005317df2829a97f962311b9ecf" - integrity sha512-L9GL4YtgvoaS7DXcBuHZ1WtH+D2wV6G33THpxVmBEaJQp/vgRQg9Z4bb+9Mj/rBcATgbUu4Sd7H3xJE2qCd93w== +"@react-native-community/cli@19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-19.0.0.tgz#a776e5188a4ea568f09d75b4cd8d9dfcfb492651" + integrity sha512-a7lAt0mACJ2jsCgDIFWpsCaqWxWoRTZwRMD5HOS3RYOYEUBzp4bfiQdjLUmrx5vF76KvcD0Q1YigrAVrEbSmbw== dependencies: - "@react-native-community/cli-clean" "19.1.0" - "@react-native-community/cli-config" "19.1.0" - "@react-native-community/cli-doctor" "19.1.0" - "@react-native-community/cli-server-api" "19.1.0" - "@react-native-community/cli-tools" "19.1.0" - "@react-native-community/cli-types" "19.1.0" + "@react-native-community/cli-clean" "19.0.0" + "@react-native-community/cli-config" "19.0.0" + "@react-native-community/cli-doctor" "19.0.0" + "@react-native-community/cli-server-api" "19.0.0" + "@react-native-community/cli-tools" "19.0.0" + "@react-native-community/cli-types" "19.0.0" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0"