Marc Mintel f2b8b136af
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 1s
Monorepo Pipeline / 🧪 Test (push) Successful in 1m15s
Monorepo Pipeline / 🧹 Lint (push) Successful in 4m6s
Monorepo Pipeline / 🏗️ Build (push) Successful in 2m19s
Monorepo Pipeline / 🐳 Build Production Runtime (push) Successful in 38s
Monorepo Pipeline / 🐳 Build Build-Base (push) Successful in 43s
Monorepo Pipeline / 🚀 Release (push) Successful in 1m54s
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Successful in 2m33s
🏥 Server Maintenance / 🧹 Prune & Clean (push) Failing after 4s
chore: release v1.9.7
2026-03-02 21:16:51 +01:00
2026-03-02 21:16:51 +01:00
2026-03-02 21:16:51 +01:00
2026-02-25 12:43:57 +01:00
2026-03-02 21:16:51 +01:00
2026-02-25 12:43:57 +01:00
2026-03-02 21:16:51 +01:00
2026-02-25 12:43:57 +01:00
2026-02-25 12:43:57 +01:00
2026-02-25 12:43:57 +01:00
2026-02-26 19:05:19 +01:00

Mintel Monorepo

This monorepo is the central "factory" for all Mintel client websites. It provides a standardized, versioned core of configurations, utilities, and infrastructure templates to ensure consistency, security, and rapid deployment across the entire portfolio.

🏗 Project Structure

  • apps/: Client website implementations (e.g., sample-website). These are consumers of the shared packages.
  • packages/: Shared, versioned npm packages under the @mintel namespace.

🚀 Getting Started

Prerequisites

  • pnpm (v10+)
  • Node.js (v20+)
  • Access to the private registry: https://npm.infra.mintel.me

Installation

pnpm install

Development

To run development mode for all shared packages:

pnpm dev

Building

To build all shared packages:

pnpm build

🛠 Creating a New Client Project

Never copy-paste files manually. Use the Mintel CLI to scaffold a new project with all best practices pre-configured:

pnpm --filter @mintel/cli start init apps/client-name.com

This command automatically:

  1. Sets up the directory structure.
  2. Links all @mintel shared packages.
  3. Configures next-intl (i18n) and Sentry.
  4. Injects Docker and Gitea Actions deployment workflows.

🔄 Release Cycle (Monorepo)

We use Changesets to manage the versioning and publishing of shared packages.

1. Documenting Changes

When you modify a package in packages/*, create a changeset:

pnpm changeset

Follow the prompts to select the package and the version bump type (patch, minor, major).

2. Versioning

When ready to release, bump the versions:

pnpm version-packages

This updates package.json files and generates CHANGELOG.md entries.

3. Publishing

The release to the private registry is automated via Gitea Actions. On every push to main, the release.yml workflow runs pnpm release. If new versions are detected, they are published to https://npm.infra.mintel.me.

🌐 Infrastructure & Deployment

Client websites scaffolded via the CLI use a tag-based deployment strategy:

  • Push to main: Deploys to the testing environment.
  • Git Tag v*.*.*-rc.*: Deploys to the staging environment.
  • Git Tag v*.*.*: Deploys to the production environment.

See the @mintel/infra package for detailed template documentation.

Trigger rebuilding for x86 architecture.

Description
No description provided
Readme 20 MiB
Languages
TypeScript 92.8%
JavaScript 4.2%
Shell 1.8%
Dockerfile 0.5%
CSS 0.4%
Other 0.3%