Skip to content

6. Deployment

Max Geller edited this page Oct 5, 2024 · 6 revisions

Deployment & Release Management

Overview

This project is currently setup to deploy to Netlify using the main and staging branches for the angular-supastarter and angular-supastarter-staging sites, respectively.

Netlify

Netlify

Staging Site Status: Netlify Status

Production Site Status: Netlify Status

Additionaly, this project offers a more robust deployment solution using Netlify, which is currently being used to deploy both the main and staging branches to illustrate the flexibility of the deployment solution for both staging and production deployments.

This is achieved through the use of a netlify.toml file for deployments to Netlify. This file is located in the root directory of the project, and is used to configure the build and deploy process for the application to Netlify. This file is used to specify the build command, publish directory, and other configurations for the deployment process.

Release Management

Versioning

The release process uses symantic versioning, and is managed using the standard-version package.

Semantic Versioning is a three-number versioning scheme. The version number is broken into three parts: major, minor, and patch. The major version number is incremented when incompatible API changes are made, the minor version number is incremented when new functionality is added in a backwards-compatible manner, and the patch version number is incremented when backwards-compatible bug fixes are made.

image

This process is automated using the .releaserc.json file located in the root directory. This process is triggered by any merging into the main branch, and will automatically update the CHANGELOG.md file, commit the updated CHANGELOG.md file, tag the commit with the new version number, and update the package.json file with the new version number.

This process will:

  • Update the CHANGELOG.md file
  • Commit the updated CHANGELOG.md file
  • Tag the commit with the new version number
  • Update the package.json file with the new version number
  • Push the new tag to the remote repository

Additionally, a custom script is run as part of the release process to automate the versioning of the environment variables in the angular-starter/src/environments directory. This script is located in the angular-starter/package.json file, and is run using the following command:

npm run release

Developer Footer

The application implements a developer footer that displays the current user's email address, UID, role type and the tenant they are in. This is useful for debugging and for ensuring that the application is working as expected. This footer is only displayed in both the development and staging environments, and is not displayed in the production environment.