Skip to content

Release Process

Candice edited this page Oct 13, 2025 · 5 revisions

Overview

Releases are promoted via a Pull Request from main to production. Any work that is not ready for production must be hidden behind a feature flag (gated). GitHub Actions automatically builds, generates sitemaps, runs tests and deploys.

main ──▶ (PR) ──▶ production ──▶ deploy

Step-by-Step

1. Review changes

On main (or a release branch):

  • Confirm any incomplete features are behind feature flags.
  • Ensure tests pass locally: yarn test && yarn build

2. Open PR and merge: main → production (or release-branch → production)


3. Github Actions: Build steps

The release pipeline automatically runs the following steps when content is merged into the production branch.

  • yarn generate-footer-content Generates release information for portal page footer.

  • yarn generate-metadata-completeness-fields Generates metadata completeness score fields based on NDE API specifications.

  • yarn generate-dataset-sitemaps Generates sitemaps for datasets of approved sources.

  • yarn build (uses .env.production) Builds the Next.js application.

  • yarn test Runs the test suite

  • next-sitemap (via postbuild) Generates portal specific sitemaps

Deployment is then performed via AWS (S3 + CloudFront).


4. Tag the release

After merging the PR and deploying, create a version tag:

git checkout production
yarn release         # or release:patch/minor/major
git push --follow-tags

This updates the CHANGELOG.md and creates a semantic version tag based on commit history.

Clone this wiki locally