Skip to content

Latest commit

 

History

History
52 lines (37 loc) · 3.96 KB

README.md

File metadata and controls

52 lines (37 loc) · 3.96 KB

Welcome to the GC Digital Talent monorepo

Lighthouse PHP CodeQL Jest Lint PHPUnit Playwright Translations codecov

The GC Digital Talent app is divided into multiple services, each treated as its own sub-project:

  • /api, API service
  • /apps, frontend applications
  • /packages, npm packages used within /apps
  • /apps/playwright, e2e testing with Playwright
  • /tc-report, static content, mostly the Talent Cloud report, generated with Jekyll
  • /infrastructure, support files for the docker infrastructure to run the project
    • includes a mock OAuth server (only used for local development environments)
  • /maintenance, scripts which run inside the docker containers for setup and updates

The api and frontend projects are both designed to run in separate containers. However, they can also be run on a single server with requests routed carefully between them. This is currently how the docker infrastructure works.

Each sub-project has its own README.md, with advice on how to contribute to that sub-project. The README files also contain notes on how to configure the sub-projects, but if you simply want to get the project running on a new machine, you may disregard these notes and move straight to the steps below.

Testing

We do several types of testing: (internal documentation linked when available)

  • code style checks (aka linting)
    • ESLint feat. Prettier (JavaScript)
    • Pint (PHP)
  • unit testing
    • Jest (ReactJS)
    • PHPUnit (PHP)
  • visual regression testing
  • end-to-end testing with Playwright (full app in-browser)
  • security checks (aka security regression testing)
    • CodeQL (JavaScript, TypeScript)

As much as possible, we aspire to make these runnable on:

  • ⌨️ your CLI (command-line interface)
  • 💻 your IDE (integrated development environment)
  • ☁️ our CI (continuous integration) environment

Getting Started

Running with Docker

We strongly recommend running the project entirely with Docker. In this case the only dependency you must install on your machine is Docker Desktop.

Then, follow the instructions in /maintenance/README.md to build the project docker containers and run the build scripts. That should handle everything!

Tip

If using Docker Desktop, make sure virtualization is enabled in your machine's BIOS.