Compare commits

...

2 Commits

Author SHA1 Message Date
4ea9cbc551 fix(next-utils): use natural type inference for validateMintelEnv to fix unknown type errors
Some checks failed
Monorepo Pipeline / 🚀 Release (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been cancelled
Monorepo Pipeline / 🏗️ Build (push) Has been cancelled
Monorepo Pipeline / 🧹 Lint (push) Has been cancelled
Monorepo Pipeline / 🧪 Test (push) Has been cancelled
Monorepo Pipeline / 📦 Install & Sync (push) Has been cancelled
2026-02-11 00:17:46 +01:00
d8c1a38c0d chore: optimize pipeline for speed and parallelize QA jobs
Some checks failed
Monorepo Pipeline / 🧹 Lint (push) Has been cancelled
Monorepo Pipeline / 🧪 Test (push) Has been cancelled
Monorepo Pipeline / 🏗️ Build (push) Has been cancelled
Monorepo Pipeline / 🚀 Release (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been cancelled
Monorepo Pipeline / 📦 Install & Sync (push) Has been cancelled
2026-02-11 00:14:55 +01:00
3 changed files with 77 additions and 11 deletions

View File

@@ -12,8 +12,8 @@ concurrency:
cancel-in-progress: true
jobs:
qa:
name: 🧪 Quality Assurance
install:
name: 📦 Install & Sync
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
@@ -32,6 +32,7 @@ jobs:
uses: actions/setup-node@v4
with:
node_version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -40,18 +41,84 @@ jobs:
if: startsWith(github.ref, 'refs/tags/v')
run: pnpm sync-versions
lint:
name: 🧹 Lint
needs: install
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node_version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile --prefer-offline
- name: Lint
run: pnpm lint
test:
name: 🧪 Test
needs: install
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node_version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile --prefer-offline
- name: Test
run: pnpm test
build:
name: 🏗️ Build
needs: install
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node_version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile --prefer-offline
- name: Build
run: pnpm build
release:
name: 🚀 Release
needs: qa
needs: [lint, test, build]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: docker
container:
@@ -74,9 +141,10 @@ jobs:
uses: actions/setup-node@v4
with:
node_version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: pnpm install --frozen-lockfile --prefer-offline
- name: 🏷️ Release Packages (Tag-Driven)
run: |
@@ -85,7 +153,7 @@ jobs:
build-images:
name: 🐳 Build ${{ matrix.name }}
needs: qa
needs: [lint, test, build]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: docker
container:

View File

@@ -1,6 +1,6 @@
{
"name": "@mintel/next-utils",
"version": "1.7.4",
"version": "1.7.5",
"publishConfig": {
"access": "public",
"registry": "https://npm.infra.mintel.me"

View File

@@ -52,9 +52,7 @@ export const mintelEnvSchema = {
export function validateMintelEnv<
T extends z.ZodRawShape = Record<string, never>,
>(
schemaExtension: T = {} as T,
): z.infer<z.ZodObject<typeof mintelEnvSchema & T>> {
>(schemaExtension: T = {} as T) {
const fullSchema = z.object(mintelEnvSchema).extend(schemaExtension);
const isBuildTime =
@@ -68,7 +66,7 @@ export function validateMintelEnv<
console.warn(
"⚠️ Some environment variables are missing during build, but skipping strict validation.",
);
// Return process.env casted to ensure types match for the full schema
// Return process.env casted to the full schema type to unblock builds
return process.env as unknown as z.infer<typeof fullSchema>;
}
@@ -79,5 +77,5 @@ export function validateMintelEnv<
throw new Error("Invalid environment variables");
}
return result.data as z.infer<typeof fullSchema>;
return result.data;
}