Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 2020 Add a performance test for iOS in Bitrise #12091

Open
wants to merge 26 commits into
base: main
Choose a base branch
from

Conversation

MarioAslau
Copy link
Contributor

Description

iOS cold app start slightly regressed recently. We want to prevent that from happening again by adding a performance test for iOS in Bitrise, similar to the one we've setup for Android.

This PR includes:

  • Appium Upgrade to v2.0
  • iOS Browserstack configuration update

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

@MarioAslau MarioAslau added area-performance Issues relating to slowness of app, cpu usage, and/or blank screens. team-mobile-platform team-tiger Tiger team (for tech debt reduction + performance improvements) labels Oct 29, 2024
@MarioAslau MarioAslau self-assigned this Oct 29, 2024
Copy link
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

Copy link

socket-security bot commented Oct 29, 2024

🚨 Potential security issues detected. Learn more about Socket for GitHub ↗︎

To accept the risk, merge this PR and you will not be notified again.

Alert Package NoteSourceCI
Network access npm/spdy@4.0.2 🚫
Network access npm/spdy@4.0.2 🚫
Network access npm/spdy@4.0.2 🚫
Network access npm/spdy@4.0.2 🚫
Network access npm/spdy@4.0.2 🚫
Install scripts npm/sharp@0.33.5
  • Install script: install
  • Source: node install/check
⚠︎
Network access npm/express@4.21.1 🚫
Network access npm/express@4.21.1 🚫
Network access npm/express@4.21.1 🚫
Unstable ownership npm/form-data@4.0.1 🚫
Shell access npm/appium@2.12.1 🚫
Shell access npm/appium@2.12.1 🚫
Install scripts npm/appium@2.12.1
  • Install script: postinstall
  • Source: node ./scripts/autoinstall-extensions.js
⚠︎
Network access npm/@appium/base-driver@9.12.1 🚫
Network access npm/@appium/base-driver@9.12.1 🚫
Network access npm/@appium/base-driver@9.12.1 🚫

View full report↗︎

Next steps

What is network access?

This module accesses the network.

Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.

What is an install script?

Install scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.

Packages should not be running non-essential scripts during install and there are often solutions to problems people solve with install scripts that can be run at publish time instead.

What is unstable ownership?

A new collaborator has begun publishing package versions. Package stability and security risk may be elevated.

Try to reduce the amount of authors you depend on to reduce the risk to malicious actors gaining access to your supply chain. Packages should remove inactive collaborators with publishing rights from packages on npm.

What is shell access?

This module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.

Packages should avoid accessing the shell which can reduce portability, and make it easier for malicious shell access to be introduced.

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/foo@1.0.0 or ignore all packages with @SocketSecurity ignore-all

  • @SocketSecurity ignore npm/spdy@4.0.2
  • @SocketSecurity ignore npm/sharp@0.33.5
  • @SocketSecurity ignore npm/express@4.21.1
  • @SocketSecurity ignore npm/form-data@4.0.1
  • @SocketSecurity ignore npm/appium@2.12.1
  • @SocketSecurity ignore npm/@appium/base-driver@9.12.1

Copy link
Member

@cortisiko cortisiko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update the performance feature files with the iosApp tag.

wdio/config/ios.config.browserstack.js Outdated Show resolved Hide resolved
wdio/config/ios.config.browserstack.js Outdated Show resolved Hide resolved
wdio/config/ios.config.browserstack.js Outdated Show resolved Hide resolved
Copy link

socket-security bot commented Nov 5, 2024

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@appium/base-driver@9.12.1 environment, eval, network +3 1.06 MB jlipps
npm/@appium/base-plugin@2.2.47 None 0 24.8 kB jlipps
npm/@appium/docutils@1.0.23 None +2 932 kB jlipps
npm/@appium/logger@1.6.1 None 0 77.9 kB jlipps
npm/@appium/tsconfig@0.3.3 None 0 13.5 kB jlipps
npm/@emnapi/runtime@1.3.1 environment, eval 0 438 kB toyobayashi
npm/@img/sharp-darwin-arm64@0.33.5 None 0 274 kB lovell
npm/@img/sharp-darwin-x64@0.33.5 None 0 258 kB lovell
npm/@img/sharp-libvips-darwin-arm64@1.0.4 None 0 15.6 MB lovell
npm/@img/sharp-libvips-darwin-x64@1.0.4 None 0 18.2 MB lovell
npm/@img/sharp-libvips-linux-arm@1.0.5 None 0 13.3 MB lovell
npm/@img/sharp-libvips-linux-arm64@1.0.4 None 0 16.2 MB lovell
npm/@img/sharp-libvips-linux-s390x@1.0.4 None 0 15.3 MB lovell
npm/@img/sharp-libvips-linux-x64@1.0.4 None 0 16.2 MB lovell
npm/@img/sharp-libvips-linuxmusl-arm64@1.0.4 None 0 16 MB lovell
npm/@img/sharp-libvips-linuxmusl-x64@1.0.4 None 0 16.5 MB lovell
npm/@img/sharp-linux-arm@0.33.5 None 0 241 kB lovell
npm/@img/sharp-linux-arm64@0.33.5 None 0 273 kB lovell
npm/@img/sharp-linux-s390x@0.33.5 None 0 309 kB lovell
npm/@img/sharp-linux-x64@0.33.5 None 0 281 kB lovell
npm/@img/sharp-linuxmusl-arm64@0.33.5 None 0 342 kB lovell
npm/@img/sharp-linuxmusl-x64@0.33.5 None 0 297 kB lovell
npm/@img/sharp-wasm32@0.33.5 None 0 10.9 MB lovell
npm/@img/sharp-win32-ia32@0.33.5 None 0 18.9 MB lovell
npm/@img/sharp-win32-x64@0.33.5 None 0 19.8 MB lovell
npm/@sidvind/better-ajv-errors@3.0.1 None +1 455 kB ext
npm/@sliphua/lilconfig-ts-loader@3.2.2 None 0 10.3 kB sliphua
npm/@tsconfig/node14@14.1.2 None 0 2.36 kB typescript-deploys
npm/@types/argparse@2.0.17 None 0 8.22 kB types
npm/@types/async-lock@1.4.2 None 0 7.46 kB types
npm/@types/bluebird@3.5.42 None 0 61 kB types
npm/@types/json-schema@7.0.15 None 0 31.7 kB types
npm/@types/lodash@4.17.12 None 0 868 kB types
npm/@types/method-override@0.0.35 None 0 3.54 kB types
npm/@types/serve-favicon@2.5.7 None 0 4.37 kB types
npm/@types/wrap-ansi@3.0.0 None 0 3.07 kB types
npm/appium@2.12.1 environment, filesystem, shell, unsafe Transitive: eval +34 8.8 MB jlipps
npm/async-lock@1.4.1 None 0 18.3 kB rogierschouten
npm/cookie@0.7.1 None 0 23.3 kB blakeembrey
npm/cross-env@7.0.3 environment 0 29.1 kB kentcdodds
npm/express@4.21.1 environment, filesystem, network +2 249 kB ulisesgascon
npm/form-data@4.0.1 filesystem, network 0 31.4 kB ljharb
npm/handle-thing@2.0.1 None 0 12.1 kB indutny
npm/hpack.js@2.1.6 None +2 127 kB indutny
npm/http-deceiver@1.2.7 None 0 13.9 kB indutny
npm/http-status-codes@2.3.0 None 0 223 kB prettymuchbryce
npm/lilconfig@3.1.2 filesystem 0 17.9 kB antonk52
npm/lodash.get@4.4.2 None 0 26.5 kB jdalton
npm/logform@2.6.1 None 0 114 kB dabh
npm/package-changed@3.0.0 environment, filesystem 0 141 kB thdk
npm/package-json-from-dist@1.0.1 None 0 36.5 kB isaacs
npm/select-hose@2.0.0 None 0 15.4 kB indutny
npm/serve-static@1.16.2 None 0 25.4 kB wesleytodd
npm/spdy-transport@3.0.0 None 0 136 kB daviddias
npm/spdy@4.0.2 network 0 57.7 kB indutny
npm/teen_process@2.2.0 environment, filesystem, shell 0 87.2 kB kazucocoa
npm/ts-node@9.1.1 environment, filesystem, unsafe 0 410 kB cspotcode
npm/tslib@2.8.1 None 0 90.4 kB typescript-bot
npm/typescript@5.6.3 None 0 22.4 MB typescript-bot
npm/winston-transport@4.8.0 None 0 54.6 kB dabh, indexzero, jcrugzz, ...2 more
npm/winston@3.15.0 None 0 271 kB dabh
npm/yaml@2.6.0 None 0 681 kB eemeli

🚮 Removed packages: npm/@appium/tsconfig@0.3.1, npm/@babel/polyfill@7.12.1, npm/@dabh/colors@1.4.0, npm/@jimp/bmp@0.16.2, npm/@jimp/core@0.16.2, npm/@jimp/custom@0.16.2, npm/@jimp/gif@0.16.2, npm/@jimp/jpeg@0.16.2, npm/@jimp/plugin-blit@0.16.2, npm/@jimp/plugin-blur@0.16.2, npm/@jimp/plugin-circle@0.16.2, npm/@jimp/plugin-color@0.16.2, npm/@jimp/plugin-contain@0.16.2, npm/@jimp/plugin-cover@0.16.2, npm/@jimp/plugin-crop@0.16.2, npm/@jimp/plugin-displace@0.16.2, npm/@jimp/plugin-dither@0.16.2, npm/@jimp/plugin-fisheye@0.16.2, npm/@jimp/plugin-flip@0.16.2, npm/@jimp/plugin-gaussian@0.16.2, npm/@jimp/plugin-invert@0.16.2, npm/@jimp/plugin-mask@0.16.2, npm/@jimp/plugin-normalize@0.16.2, npm/@jimp/plugin-print@0.16.2, npm/@jimp/plugin-resize@0.16.2, npm/@jimp/plugin-rotate@0.16.2, npm/@jimp/plugin-scale@0.16.2, npm/@jimp/plugin-shadow@0.16.2, npm/@jimp/plugin-threshold@0.16.2, npm/@jimp/plugins@0.16.2, npm/@jimp/png@0.16.2, npm/@jimp/tiff@0.16.2, npm/@jimp/types@0.16.2, npm/@jimp/utils@0.16.2, npm/@puppeteer/browsers@1.7.1, npm/@types/caseless@0.12.2, npm/@types/lodash@4.17.0, npm/@types/puppeteer-core@5.4.0, npm/@types/puppeteer@7.0.4, npm/@types/request@2.48.8, npm/@types/tough-cookie@4.0.2, npm/any-base@1.1.0, npm/appium-android-driver@4.54.0, npm/appium-base-driver@7.11.3, npm/appium-chromedriver@4.28.0, npm/appium-espresso-driver@1.50.1, npm/appium-fake-driver@1.0.2, npm/appium-flutter-driver@0.0.36, npm/appium-geckodriver@0.3.3, npm/appium-idb@0.5.1, npm/appium-ios-device@1.8.0, npm/appium-ios-driver@4.8.3, npm/appium-ios-simulator@3.29.0, npm/appium-mac-driver@1.10.2, npm/appium-mac2-driver@0.14.1, npm/appium-remote-debugger@5.7.0, npm/appium-safari-driver@2.2.1, npm/appium-sdb@1.0.1-beta.1, npm/appium-tizen-driver@1.1.1-beta.5, npm/appium-uiautomator2-server@4.29.1, npm/appium-webdriveragent@3.17.0, npm/appium-windows-driver@1.21.1, npm/appium-xcode@3.11.0, npm/appium-youiengine-driver@1.2.9, npm/appium@1.22.3, npm/async-listener@0.6.10, npm/async-lock@1.3.2, npm/atob@2.1.2, npm/bmp-js@0.1.0, npm/buffer-equal@0.0.1, npm/charenc@0.0.2, npm/chromium-bidi@0.4.27, npm/continuation-local-storage@3.2.1, npm/cookie@0.6.0, npm/crypt@0.0.2, npm/css-selector-parser@1.4.1, npm/emitter-listener@1.1.2, npm/es6-promisify@6.1.1, npm/exif-parser@0.1.12, npm/express@4.20.0, npm/file-type@9.0.0, npm/gifwrap@0.9.4, npm/http-status-codes@2.2.0, npm/image-q@4.0.0, npm/interpret@1.4.0, npm/invert-kv@2.0.0, npm/io.appium.settings@3.6.0, npm/is-buffer@1.1.6, npm/is-number-like@1.0.8, npm/jimp@0.16.2, npm/jpeg-js@0.4.4, npm/jszip@3.10.1, npm/lcid@2.0.0, npm/lodash.isfinite@3.3.2, npm/logform@2.5.1, npm/longjohn@0.2.12, npm/map-age-cleaner@0.1.3, npm/md5@2.3.0, npm/mem@4.3.0, npm/minipass@7.1.1, npm/node-idevice@0.1.6, npm/os-locale@3.1.0, npm/p-defer@1.0.0, npm/p-is-promise@2.1.0, npm/parse-bmfont-ascii@1.0.6, npm/parse-bmfont-binary@1.0.6, npm/parse-bmfont-xml@1.1.4, npm/parse-headers@2.0.3, npm/pem@1.14.6, npm/phin@2.9.3, npm/pixelmatch@4.0.2, npm/proxy-agent@6.3.1, npm/puppeteer@21.3.1, npm/rechoir@0.6.2, npm/request-promise-core@1.1.4, npm/request-promise@4.2.6, npm/rpc-websockets@7.5.0, npm/safari-launcher@2.0.5, npm/selenium-webdriver@3.6.0, npm/serve-static@1.16.0, npm/shared-preferences-builder@0.0.4, npm/shelljs@0.8.5, npm/stealthy-require@1.1.1, npm/teen_process@2.0.37, npm/timm@1.7.1, npm/tslib@2.6.3, npm/utf7@1.0.2, npm/utif@2.0.1, npm/uuid-js@0.7.5, npm/winston-transport@4.5.0, npm/winston@3.10.0, npm/xhr@2.6.0, npm/xml-parse-from-string@1.0.1, npm/xmldom@0.7.13, npm/xpath@0.0.32, npm/yaml@2.4.5

View full report↗︎

@MarioAslau MarioAslau added Run Smoke E2E Triggers smoke e2e on Bitrise and removed blocked labels Nov 13, 2024
@MarioAslau MarioAslau marked this pull request as ready for review November 13, 2024 23:00
@MarioAslau MarioAslau requested review from a team as code owners November 13, 2024 23:00
@MarioAslau MarioAslau added Run Smoke E2E Triggers smoke e2e on Bitrise and removed Run Smoke E2E Triggers smoke e2e on Bitrise labels Nov 13, 2024
Copy link
Contributor

github-actions bot commented Nov 13, 2024

https://bitrise.io/ Bitrise

❌❌❌ pr_smoke_e2e_pipeline failed on Bitrise! ❌❌❌

Commit hash: 42e7f60
Build link: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/e2917653-8ed1-4482-a5c8-0475b13edcee

Note

  • You can kick off another pr_smoke_e2e_pipeline on Bitrise by removing and re-applying the Run Smoke E2E label on the pull request

Tip

  • Check the documentation if you have any doubts on how to understand the failure on bitrise

Copy link

sonarcloud bot commented Nov 14, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-performance Issues relating to slowness of app, cpu usage, and/or blank screens. Run Smoke E2E Triggers smoke e2e on Bitrise team-mobile-platform team-tiger Tiger team (for tech debt reduction + performance improvements)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants