Frontend for Ansible Hub and Galaxy. The backend for this project can be found at ansible/galaxy_ng, developer docs at ansible.readthedocs.io, and an outdated wiki at ansibe/galaxy_ng wiki. Also read developer_guidelines.
The project is built on React & Patternfly, using components from patternfly-react, with lingui for l10n.
The development version of the backend runs in a docker-compose.
Set up:
git clone https://github.com/ansible/galaxy_ng
Run:
cd galaxy_ng
make compose/aap
The backend can be run in multiple modes - standalone
, community
, insights
, certified-sync
and aap
.
Depending on the mode, it will listen on http://localhost:5001, under /api/galaxy/
, /api/
or /api/automation-hub/
.
Or, use the simplified compose stack.
UI can run either as part of the backend container, or locally. The development version of the frontend uses webpack dev server.
Set up:
Install node. Node v20+ is known to work. Other versions may work as well.
git clone https://github.com/ansible/ansible-hub-ui
cd ansible-hub-ui
npm install
Run:
cd ansible-hub-ui
API_PROXY=http://localhost:5001 npm run start-standalone
(Or run API_PROXY=https://my-server.example.com npm run start-standalone
to run with external backend.)
This app can be developed in standalone, community, or insights mode. Insights mode compiles the app to be run on the Red Hat cloud services platform (insights). Standalone mode only requires a running instance of the galaxy API for the UI to connect to. Community mode is similar to standalone, with github login and roles.
start-standalone
: assumescompose/standalone
orcompose/dab
, http://localhost:8002/ui/ and http://localhost:5001/api/galaxy/start-community
: assumescompose/community
, http://localhost:8002/ui/ and http://localhost:5001/api/start-insights
: assumescompose/insights
, http://localhost:8002/preview/ansible/automation-hub/ and http://localhost:5001/api/automation-hub/- NOTE: This option is only relevant to Red Hat employees.
For more information about UI testing go to test/README.md.
Set up:
pip install galaxykit ansible
cd ansible-hub-ui/test/
npm install
And create a cypress.env.json
from the cypress.env.json.template
template.
Run:
cd ansible-hub-ui/test/
npm run cypress
List of all workflows:
cypress
: Run Cypress integration tests; on PRs, pushes and crondev-release
: Build and upload to github releases, updatedev
tag; when master is updatedi18n
: Extract and merge l10n strings; cronpr-checks
: Check for linter errors, obsolete package-lock.json and merge commits; on PRs onlystable-release
: Build and upload to github releases; when a stable release is created
List by branches:
master
:cypress
,dev-release
,i18n
,pr-checks
,stable-release
stable-*
:cypress
,i18n
(via cron from master),pr-checks
,stable-release
Our branches, backport labels, releases and tags use AAH versions, but Jira uses AAP versions. To map between the two:
AAP version | AAH version |
---|---|
2.4 | 4.9 |
2.5 | 4.10 |