15.1.0 • Published 1 year ago

df-fast-mobile v15.1.0

Weekly downloads
-
License
-
Repository
-
Last release
1 year ago

FAST Mobile

iOS mobile application used by Curbside partners to fulfill online orders.

Environments

There are three environments in the app that are available if you have sufficient priveleges.

  • Test - this environment is all static data that has been stubbed on the device. This data does not change unless you change it in the code. A lot of our UITests rely on this static data so the associated test will need to be updated if you modify the test data in a way to fail that test.
  • Nonprod - this environment has a lot of automation generated orders/data. If you need to run some sort of regression with our services, then use this environment with a clean order or place a new one.
  • Prod - this environment is live production data, only use this environment if you want to see production data. Avoid modifiying any data here.

Permissions

FAST implements RBAC and does not permit access to the app if you are not on the whitelist and attempt to access prod. RBAC is currently managed with FAST Config Service, the repo can be found here. Nonprod and test both bypass RBAC. In addition to RBAC, we also use a feature flag in Gitlab for dev mode. Dev mode unlocks the ability to change environments and provides some dev actions such as press to copy in the app.

Building & Running on Mac

Follow this checklist to get set up running FAST. If you run into any issues, feel free to post in the Slack channel #df-fast-mobile-devs for help.

Installing/updating Swift Packages

  • On project open, make sure you resolve all Swift packages in the project. You can do this by opening Xcode -> File -> Packages -> Resolve Package Versions. If you need to update SPM, you can do so using the same menu as resolving package versions.

Running tests

Unit, UI and Snapshot tests can be ran in Xcode or by using Fastlane by running bundle exec fastlane run_all_tests. These tests are automatically ran on every merge request and commit to master. If you need to run these manually, open Xcode and run CMD - U. This will build the project and run all tests via the test plan - HEBFast.

GraphQL

Details for generating Apollo/GraphQL client code can be found here

Contributing

This project uses the conventional commit format for commit messages. Please review the contribution guidelines before contributing to this project.

Cutting a release

  • Details for how to cut a release can be found here.

CICD

  • CICD is configured using Bitrise and Fastlane. A link to the Bitrise project can be found here.
  • The pipeline will run a lint on every commit, all tests on every merge or commit to master and a deploy to nonprod on tag creation. A build to early access or full access is available but must be manually triggered in Bitrise.
  • SwiftLint is configured to fail the CICD build on any warnings/errors. SwiftLint warnings/errors will appear in Xcode or it can be run on the command line by running: swiftlint at the repo root. Swiftlint can be installed locally with Homebrew by running brew install swiftlint. The linting rules that SwiftLint is configured with can be found via the .swiftlint.yml.
15.1.0

1 year ago