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 container, using the pulp/oci_env wrapper.
Set up:
git clone https://github.com/pulp/oci_env
git clone https://github.com/ansible/galaxy_ng
pip install -e oci_env/client/
oci-env # make sure oci-env is in PATH
Run:
cd galaxy_ng
make oci/dab
The backend can be run in multiple modes - standalone
, community
, insights
, keycloak
, ldap
and dab
.
Depending on the mode, it will listen on http://localhost:5001 or http://localhost:55001, 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_PORT=5001 npm run start-standalone
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
: assumesoci/standalone
oroci/dab
, http://localhost:8002/ui/ and http://localhost:55001/api/galaxy/start-community
: assumesoci/community
, http://localhost:8002/ui/ and http://localhost:5001/api/start-insights
: assumesoci/insights
, http://localhost:8002/preview/ansible/automation-hub/ and http://localhost:55001/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 |