-
Notifications
You must be signed in to change notification settings - Fork 13
CI Build Process
JamieB edited this page Jun 20, 2018
·
3 revisions
In order to build the project, team city runs a series of steps. The first step installs node js, the second builds the assets by executing the script build-tc
. Finally, the third step compiles the Scala code, packages the frontend and backend, and uploads this to riff-raff ready to be deployed. All these steps are defined in build.sbt
.
Our build process uses npm scripts
as a orchestrator tool for assets. The available scripts are defined in the package.json
. Those scripts, depending on what they are trying to achieve, use other tools like webpack, sass, babel, eslint etc.
As an example, in order to build the assets for production, the step build-prod
should be run. This script runs:
-
clean
- Deletes the previous compiled assets. -
validate
- Validates the javascript source code by running lint for style check and flow type check. -
test
- Runs the javascript tests using jest. -
webpack
- Runs webpack in production mode. Webpack runs the following series of processes:
- babel - Transpiles the javascript and jsx files, generating browser-compatible JavaScript.
- uglify - Minifies and compresses the javascript. Additionally, it generates the source maps that are going to be used by Sentry.
- asset hashing - Since the site has a caching layer sitting in front of it, we append a hash to the name of the asset in order to invalidate the cache every time we make a release of the site.
- Redux Glossary
- Why Redux Toolkit?
- Writing state slices with Redux Toolkit
- Handling action side effects in Redux
- Presentational and Container Components
- Scoped actions and reducers
- Server Side Rendering
- Form validation
- CI build process
- Post deployment testing
- Post deployment test runbook
- TIP Real User Testing
- Code testing and validation
- Visual testing
- Testing Apple Pay locally
- Test Users
- Deploying to CODE
- Automated IT tests
- Deploying Fastly VCL Snippets
- Archived Components
- Authentication
- Switchboard
- How to make a fake contribution
- The epic and banner
- Environments
- Tech stack
- Supported browsers
- Contributions Internationalisation
- Payment method internationalisation in Guardian Weekly
- Print fulfilment/delivery
- Updating the acquisitions model
- Runscope testing
- Scala Steward for dependency management
- Alarm Investigations
- Ticker data
- Ophan
- Quantum Metric
- [Google Tag Manager] (https://github.com/guardian/support-frontend/wiki/Google-Tag-Manager)