- Make sure you have Node.js version >= 18 installed
- Run script to patch your
/etc/hosts
- Make sure you are using Red Hat proxy
- Install dependencies with
npm install
- Run development server with
npm run start:proxy
- Local version of the app will be available at https://stage.foo.redhat.com:1337/insights/advisor/
In case you want to use the stable environment instead of beta you can run the app with npm run start:proxy
and access it from https://stage.foo.redhat.com:1337/insights/advisor/. Usually there is no difference between these two environments unless there is a large feature in progress which is hidden behind isBeta
flag.
If you want to test Advisor with another application deployed locally, you can utilise LOCAL_APPS
environment variable and deploy the needed application on separate ports. To learn more about the variable, see https://github.com/RedHatInsights/frontend-components/tree/master/packages/config#running-multiple-local-frontend-applications.
We'll take for example insights-inventory-frontend.
Open new terminal, navigate to Inventory repository, and run it on a separate port without proxy:
npm run start -- --port=8003
In a separate terminal, run Advisor with proxy enabled and list Inventory:
LOCAL_APPS=inventory:8003~http npm run start:proxy
Travis is used to test the build for this code.
npm run test
will run tests.npm run lint
will run all linters.
Before opening a pull request, you can run npm run verify:local
to make sure your changes pass automated tests (Jest and Cypress) and linter (both JS and CSS linters).
The app uses containerized builds which are configured in app-interface
.
Push to branch in this repo | Updated branch in build repo | Environment | Available at |
---|---|---|---|
master | stage-beta | stage beta | master branch |
master-stable | stage-stable | stage stable | master branch |
prod-beta | prod-beta | production beta | up to the commit configured in app-interface |
prod-stable | prod-stable | production stable | up to the commit configured in app-interface |
Translation keys are saved in messages.js
.
Each time you add a new translation keys you need to run npm run translations
, which will automatically generate JSON files for every language into locales/
folder based on the entries in the messages.js
.
There are two ways to use translated strings:
- With
intl.formatMessage(messages.messageId)
- With
<FormattedMessage {...messages.messageId}/>
This project uses Patternfly React.
This app imports components from Insights Front-end Components library. ESI tags are used to import Insights Chrome which takes care of the header, sidebar, and footer.