The whole process (build, test, release, and deployment process) is automated by Jenkins. Each change in GitHub will initiate the CI process(branch push, pull request). Maven artifacts and NPM packages are stored in Nexus repository. There is a collaboration between AWS, Nexus and Jenkins which allows CI system automatically build environments which is used for testing and demonstrating purposes. The are 4 commonly used (but there are a lot more) environments:
folio-testing - built from the latest master branch of the UI code. Job starts every hour. See Jenkins job.
folio-snapshot - built from frontendmaster branch and latest version of backend modules that meet the dependency requirements of the frontend. Job starts every day at about 03:00 UTC. Jenkins job.
folio-snapshot-stable - uses the alias of 'folio-snapshot' + integration and regression tests. Recommended for demos/acceptance testing.
Docker images are based on Dockerfile which describes the procedure of how to build a runtime Docker image for the module. If this file exists in top-level Jenkins will create an image and place it to 'folioci' Docker hub. Release versions are stored in 'folioorg' Docker repository. Write access to the ‘folioci’ repositories is via Jenkins only.
Here is list of command which may be useful during the work:
All Vagrant boxes are built by Jenkins night job. Folio has several pre-build Vagrant boxes to use which is stored in Vagrant Cloud.
folio/stable -- a full-stack FOLIO system with stable releases of front- and backend modules.
folio/stable-backend -- a backend FOLIO system with stable releases of backend modules.
folio/snapshot -- a full-stack FOLIO system, built from the most recent working commits to frontend components and the matching releases of the backend modules.
folio/testing -- a full-stack FOLIO system, with the very latest releases of front- and backend modules.
folio/testing-backend -- a backend FOLIO system, with the very latest releases of backend modules.
folio/minimal -- a minimal FOLIO system with just Okapi and no modules or sample data loaded.
folio/curriculum -- a box built to support the FOLIO Developer Curriculum, with prerequisites installed.