Continous Integration and Continuous Deployment

Explains how this website is maintained. This is a real-life example of SaaS-based CI/CD.

Build process

Sequence of build events and tooling to support the pipeline.

Phony target Makefile Technique to simplify the build process. Obviates the need for some Bash scripts.

Make log Reference output from a sample regression test using "make"

Build Specification Instruction file consisting of four stages to test/deploy the website.

Pipeline steps

Script sequence used during the automated build process.

Install tidy Bash script to install a lightweight and common HTML linter.

Install Python packages Installed with pip. Includes pylint and bandit for linting.

HTML lint script Bash script to check HTML code for syntax/security issues.

Python code validation Ensure all source code is "production ready" (see Makefile):

Compute SHA-265 Hash all website-accessible files for integrity (see Makefile). Download current hashes here.

Create Atom XML file using the supporting template Python script and jinja2 template to assist with feed subscriptions.

Copy redirection files Uploads redirection files containing their metadata contents to AWS S3.

Validate href/img links Python script to follow all hyperlinks, files, and images to ensure they work.

Validate cache headers Ensure all HTTP cache test files have the expected Cache-Control headers.

Validate redirection targets Ensure that redirection file metadata matches what AWS S3 is advertising.

Main Page