Marc Mintel 32d3ff010a
All checks were successful
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 7s
Monorepo Pipeline / 🧪 Test (push) Successful in 1m4s
Monorepo Pipeline / 🧹 Lint (push) Successful in 2m50s
Monorepo Pipeline / 🏗️ Build (push) Successful in 2m21s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Image Processor (push) Has been skipped
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been skipped
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been skipped
feat(release): introduce dedicated release script to replace flawed git push hook
2026-02-27 21:03:54 +01:00
2026-02-27 21:01:52 +01:00
2026-02-25 12:43:57 +01:00
2026-02-27 21:01:52 +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-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%