Commit Graph
162 Commits
Author SHA1 Message Date
Johannes KleinandJohannes Klein 4196ae7a81 Fix CI: lightningcss native dependency (#3977)
* Remove our own cache action to rely on setup-node cache in test

* Remove our own cache action to rely on setup-node cache in crowdin-pull

* Remove our own cache action to rely on setup-node cache in ios e2e

* Remove our own cache action to rely on setup-node cache in android e2e

* Trigger new CI run

To test with an existing cache

* Revert "Trigger new CI run"

This reverts commit 2a94b1b498.

---------

Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
2026-08-25 09:23:29 -05:00
Johannes KleinandJohannes Klein 429962745c E2e android needs secrets check and skip (#3844)
* Use a more generic name

* Check for secrets before running Android e2e pipeline

Switch to ubuntu from macos compared to ios e2e pipeline

* Require checksecret for build

---------

Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
2026-07-17 16:15:48 +02:00
Ryan Stelly ba7e11fa7d use ubuntu for androide2e slack notif, replace deprecated macos-latest label (#3809) 2026-07-08 11:03:25 -05:00
Ryan Stelly be29cac7ae trust wix / applesimutils brew cask for detox CI (#3769) 2026-06-25 14:59:58 -05:00
Johannes KleinandJohannes Klein 1732721f43 Repair signedIn test (#3734)
* Update signedIn.e2e.js

* Run all tests in CI

* Run all tests in test retry

---------

Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
2026-06-16 23:51:58 +02:00
Johannes KleinandJohannes Klein 3d546b8a04 Enable aiCamera.e2e.js test in CI (#3727)
Should pass now after PR #3713

Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
2026-06-16 17:48:33 +02:00
Johannes KleinandJohannes Klein 04a59ea698 Turn on Android Detox e2e for all PRs (#3710)
* Use same assemble task as detox does (plus arch restriction)

* Add detox mock env var

* Upload test apk as well

* Download test apk and run detox test script

* Adapt test step for detox

* Update e2e_android.yml

* Only run the tests that are passing

* Trigger e2e test on PRs to main

* Restrict to arch emulator uses

* Remove maestro env vars

* Add detox logs and screen recordings

* Re-arrange CLI args

* Remove artifacts config

* First test run without logs and screen records

* Only run signedOut test

* Remove the osx-specific detox lines

---------

Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
2026-06-11 01:18:24 +02:00
Johannes Klein 12fa3d9312 Update maestro e2e ci (#3707) 2026-06-08 17:38:43 +02:00
Johannes Klein 014c608bf8 Use nvmrc to specifiy in github actions node setup the version (#3661) 2026-05-28 10:19:16 +02:00
Johannes Klein 198c977e70 Specify node 24 in GitHubActions 2026-05-27 10:09:33 +02:00
Johannes Klein 9eb7b6eba7 Merge pull request #3648 from inaturalist/macos-26-runner
Update iOS e2e tests to macos-26 runner
2026-05-26 19:41:11 +02:00
Ryan Stelly a0d631164e Replace android e2e file (#3641)
* remove old android e2e file

* git mv .new.yml to .yml
2026-05-26 13:30:37 -04:00
Johannes Klein 83f91802b7 Update e2e_ios.yml 2026-05-24 11:08:13 +02:00
Johannes Klein 476e83ccba Update e2e_ios.yml 2026-05-23 23:07:04 +02:00
Dan Rademacher 47a8238ccb Fix typo in comment 2026-05-14 17:50:04 -07:00
Dan Rademacher c91a041eab Improved issue templates, LEAD-26
Adds new links to forum from issue creation form
2026-05-13 16:37:47 -07:00
Johannes Klein 941a14a842 CI: upgrade GitHub Actions some steps (#3542)
* ci: upgrade GitHub Actions to use setup-node@v6 and checkout@v6

* Update actions/cache to v5

* Update e2e_ios.yml

* Update e2e_android.yml

* Update e2e_android.new.yml
2026-04-16 21:50:25 +02:00
Ryan Stelly 857e0cc4a8 e2e ci continue on error for first test attempt (#3313)
* MOB-1070 fix CI e2e bug for erroneous failure

* use step outcome as condition

* simplify status checks
2026-01-13 00:22:20 -06:00
Ryan Stelly 6a2769add1 (CI) run detox once (leaner flags) then retry once on failure with recordings / verbose logs (#3294)
* MOB-1071 run lean detox once, retry once on failure with recordings / verbose logs

* don't retry on status check failure
2025-12-15 19:17:40 -06:00
Ryan StellyandCopilot Autofix powered by AI 8f97ae197f MOB-936 introduce new Android CI and Maestro smoke test (#3217)
* MOB-936 introduce new Android CI and Maestro smoke test

* Potential fix for code scanning alert no. 30: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* remove branch exception to cache write rule

* delete unused new share flow

* add run to reintroduce workflow

* switch to -m runner for build

* redisable run on push

* add comments and update readme for changes

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-12-10 12:45:59 -06:00
Ryan Stelly f10bac3d41 fix name 2025-10-22 10:05:20 -05:00
Ryan Stelly be98d3ec6a add remaining env to new separate test job 2025-10-22 10:04:10 -05:00
Ryan Stelly d3b8466c74 set retention on build artifacts 2025-10-22 08:32:26 -05:00
Ryan Stelly f8110007e0 MOB-942 split iOS e2e tests into separate build and test jobs 2025-10-17 12:19:26 -05:00
Johannes Klein 0db05af4f3 Split test command into two (#3145) 2025-10-16 18:07:17 +02:00
Johannes Klein bad9c5a4d8 Add firebase dependency, and basic logging (#3127)
* Update package.json

* Update AppDelegate.mm

* Update Podfile

* Update .gitignore

* Update link-inat-model-files.sh

* Add plist file to project

* Update project.pbxproj

* Add analytics package

* Update project.pbxproj

* Update PrivacyInfo.xcprivacy

* Basic screen tracking

* Basic button press logging to firebase

* Update package-lock.json

* Update Podfile.lock

* Add Android setup

* Update .gitignore

* Add analytics mock

* Ignore rubocop warning here

* Create GoogleService-Info.example.plist

* Create google-services.example.json

* Add instructions to set up Firebase configs

* Update e2e_ios.yml

* Update e2e_android.yml

* Better plural

* Use specific XCode version in e2e CI

* Update GoogleService-Info.example.plist

* Revert "Update GoogleService-Info.example.plist"

This reverts commit 0bc0ed4862.

* We need an actual real app id or we get a crash during app start

* My bad, we do need both files for building

* Also set API key

* Add comments

* Add comment

* Update Podfile.lock

* Revert "Use specific XCode version in e2e CI"

This reverts commit cbd63d1b5d.
2025-10-16 13:15:10 +02:00
Ryan StellyandJohannes Klein 55fb2e0a1d MOB-945 use macos-15 in ci, set explicit iOS version in detox config (#3133)
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
2025-10-14 14:00:49 +02:00
Ryan Stelly c212d606b8 MOB-933 update GH Actions runner to macos-14 2025-10-10 07:23:16 -05:00
Johannes Klein 4d8013bae7 Use node v22 in crowdin CI action (#3038) 2025-07-30 17:12:17 +02:00
Johannes Klein f857ecd234 Use node v22 in CI tests (#3037) 2025-07-30 15:44:54 +02:00
Johannes Klein 85832d8464 Use node v22 also when building for e2e in CI (#3036)
* Use node v22 also in CI

We want to test the app under the same build conditions as a release build would be made with.

* Update e2e_android.yml
2025-07-30 14:30:04 +02:00
Amanda BullingtonandCopilot b7bc075f22 Fix: Add a step to rebuild *native* modules after restoring node cache (#2831)
* Add a step to rebuild *native* modules after restoring node cache

* Fix comment

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix comment

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix comment

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-04 12:20:29 -07:00
Johannes Klein 974d4665f1 Re-enable e2e in CI (#2791) 2025-03-21 15:33:45 +01:00
Johannes Klein 8ca3664ba9 Temporarily disable e2e tests on pull requests 2025-03-12 10:04:33 +01:00
Ken-ichi Ueda 21e3287c0e fix: assume all InfoList.xcstrings strings are translated; disable skip_untranslated_strings 2025-03-03 18:33:31 -08:00
Amanda Bullington 0b6acec913 Feat: track default vs. advanced mode in grafana (#2670)
* Add default/advanced mode to feedback text field, since /log endpoint doesn't support what we would need for additional grafana columns
2025-02-18 17:10:50 -08:00
Amanda Bullington 7064d0651f Feat: sync button rotates in default mode (#2669)
* Port over code to rotate the sync button when uploads are happening or sync is tapped
2025-02-18 16:25:07 -08:00
Amanda Bullington 5cf1d16999 Remove DefaultMode from debug mode (#2662)
* Remove default mode from debug mode

* Make sure tests with advanced options are fully out of default mode

* Add two simple tests to make sure correct screens show in default mode

* Show logged out empty observation screen before loading either MyObs screen

* Fix tests

* Fix tests

* Update e2e ios node module caching

* Update caching for node modules

* Modify cache node modules setup for CI

* Revert e2e signIn code
2025-02-13 20:30:50 -08:00
Johannes Klein c378c8894d Replace small example models, and add example geomodel (#2644)
* Update env.example

* Update model download script

* Delete geomodel.placeholder

* Update README.md

* Update e2e_ios.yml

* Update vision-plugin

* Accept android flavor for downloading models

* Change Android e2e env

* Replace Android e2e model download step

* Update comment

* Move Java setup step

* Revert "Move Java setup step"

This reverts commit d8ca01a176.
2025-02-03 12:16:22 +01:00
Ken-ichi Ueda d92a589739 fix: specify CV model version in e2e test
Hoping this deflakes the e2e a bit. Not sure why the AICamera test ever worked
without this.
2024-12-04 15:04:48 -08:00
Ken-ichi 8ec32ae116 fix: skip container to allow Ruby setup in crowdin-pull action (#2461)
Container was needed to prevent permissions errors after Crowdin action adds
files as root, but that interfered with Ruby setup. This just uses chown to
do the same thing.
2024-11-19 17:43:53 -08:00
Ken-ichi e1bc1626d9 chore: lint Ruby files with Rubocop (#2435)
* fix: set up Ruby before linting in Github Actions
* chore: separate linting from fixing

Before we commit we want to fix as much as possible, but when we're checking a
pull request we're not going to commit anything so we want to know about all
the problems, including the fixable ones.
2024-11-18 21:27:20 -08:00
9aef4db8bb Internationalize app store metadata (#2341)
* Add Fastlate app store metadata files as Crowdin translation sources
* Update i18ncli.js to move and rename translations so Fastlane can use them
* Update `fastlane prod` so it prompts for public release notes and cues a new
  release in the App Store that still requires the manual attachment of a
  build
* Add `fastlane android upload_metadata` to upload metadata to Play Store

Closes #2248

---------

Co-authored-by: Ken-ichi <kenichi.ueda@gmail.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-11-18 16:02:53 -08:00
Ken-ichi Ueda f55f7795a0 refactor: notify Slack when Crowdin pull action fails 2024-11-13 16:00:24 -08:00
Ken-ichi Ueda 4a3b4718bf fix: try to get Crowdin PRs to run branch protection actions 2024-10-15 11:15:16 -07:00
Ken-ichi 9af60ca613 fix: prevent git push after Crowdin pull (#2223)
* set push_translations: false in Crowdin pull action b/c we need uncommitted files to run our scripts on
* remove comments from FTL JSON
2024-10-03 12:16:56 -07:00
Ken-ichi 80ecc0b7c1 Sync with Crowdin (#2195)
Github Actions and scripts to

* push strings.ftl to Crowdin when it changes
* pull translations from Crowdin every day and a PR should get made if there are changes
* FTL validation and normalization happens in the action and will prevent a PR from being created

Closes #2103
Closes #2104
2024-10-02 10:52:30 -07:00
Ken-ichi Ueda 0403ab7784 Return to using staging for e2e tests 2024-08-08 12:58:26 -07:00
Ken-ichi 0e2b647ff3 Temporarily switch to prod for e2e_ios test (#1932) 2024-08-06 17:17:18 -07:00
Johannes Klein 7c91bdf950 Obsedit add photo with StandardCamera, two fixes (#1677)
* Reorder hooks dependencies

* Return uri from take photo hook

* Keep state of photos added in this instance of the camera

* List2 TS

* INatIconButton TS

* Refactor useBackPress to show discard modal only if photos taken during this instance of the camera

* Remove newPhotoCount var

* TS refactors

* fetchUserLocation TS

* Increase timeout

* Fix error

* Hoist deletePhotoByUri

* Delete photos on discard

* Reorder code

* Set saving photo on checkmark press

Closes #1556

* Update snapshots

* Remove delete test

* Create StandardCamera.test.js

* Check if image is there before deletion

* Update react-native-share-menu+6.0.0.patch

* Update e2e_ios.yml

* Update some types
2024-06-14 14:04:24 +02:00