ci: require pnpm install success before running QA checks
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 2s
Monorepo Pipeline / 🧹 Lint (push) Failing after 53s
Monorepo Pipeline / 🧪 Test (push) Failing after 57s
Monorepo Pipeline / 🏗️ Build (push) Failing after 1m1s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Image Processor (push) Has been skipped
Monorepo Pipeline / 🐳 Build Directus (Base) (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
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 2s
Monorepo Pipeline / 🧹 Lint (push) Failing after 53s
Monorepo Pipeline / 🧪 Test (push) Failing after 57s
Monorepo Pipeline / 🏗️ Build (push) Failing after 1m1s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Image Processor (push) Has been skipped
Monorepo Pipeline / 🐳 Build Directus (Base) (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
This commit is contained in:
@@ -41,6 +41,7 @@ jobs:
|
|||||||
echo "@mintel:registry=https://git.infra.mintel.me/api/packages/mmintel/npm" > .npmrc
|
echo "@mintel:registry=https://git.infra.mintel.me/api/packages/mmintel/npm" > .npmrc
|
||||||
echo "//git.infra.mintel.me/api/packages/mmintel/npm/:_authToken=${{ secrets.MINTEL_PRIVATE_TOKEN || secrets.GITEA_PAT }}" >> .npmrc
|
echo "//git.infra.mintel.me/api/packages/mmintel/npm/:_authToken=${{ secrets.MINTEL_PRIVATE_TOKEN || secrets.GITEA_PAT }}" >> .npmrc
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
id: deps
|
||||||
run: |
|
run: |
|
||||||
pnpm store prune
|
pnpm store prune
|
||||||
pnpm install --no-frozen-lockfile
|
pnpm install --no-frozen-lockfile
|
||||||
@@ -59,7 +60,7 @@ jobs:
|
|||||||
key: ${{ runner.os }}-chromium-native-${{ hashFiles('package.json') }}
|
key: ${{ runner.os }}-chromium-native-${{ hashFiles('package.json') }}
|
||||||
|
|
||||||
- name: 🔍 Install Chromium (Native & ARM64)
|
- name: 🔍 Install Chromium (Native & ARM64)
|
||||||
if: steps.cache-chromium.outputs.cache-hit != 'true'
|
if: steps.cache-chromium.outputs.cache-hit != 'true' && steps.deps.outcome == 'success'
|
||||||
run: |
|
run: |
|
||||||
rm -f /etc/apt/apt.conf.d/docker-clean
|
rm -f /etc/apt/apt.conf.d/docker-clean
|
||||||
apt-get update
|
apt-get update
|
||||||
@@ -83,21 +84,21 @@ jobs:
|
|||||||
# ── Quality Gates ─────────────────────────────────────────────────────────
|
# ── Quality Gates ─────────────────────────────────────────────────────────
|
||||||
|
|
||||||
- name: 🌐 Full Sitemap HTML Validation
|
- name: 🌐 Full Sitemap HTML Validation
|
||||||
if: always()
|
if: always() && steps.deps.outcome == 'success'
|
||||||
env:
|
env:
|
||||||
NEXT_PUBLIC_BASE_URL: ${{ inputs.TARGET_URL }}
|
NEXT_PUBLIC_BASE_URL: ${{ inputs.TARGET_URL }}
|
||||||
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
||||||
run: pnpm run check:html
|
run: pnpm run check:html
|
||||||
|
|
||||||
- name: 🌐 Dynamic Asset Presence & Error Scan
|
- name: 🌐 Dynamic Asset Presence & Error Scan
|
||||||
if: always()
|
if: always() && steps.deps.outcome == 'success'
|
||||||
env:
|
env:
|
||||||
NEXT_PUBLIC_BASE_URL: ${{ inputs.TARGET_URL }}
|
NEXT_PUBLIC_BASE_URL: ${{ inputs.TARGET_URL }}
|
||||||
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
||||||
run: pnpm run check:assets
|
run: pnpm run check:assets
|
||||||
|
|
||||||
- name: ♿ Accessibility Scan (WCAG)
|
- name: ♿ Accessibility Scan (WCAG)
|
||||||
if: always()
|
if: always() && steps.deps.outcome == 'success'
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
env:
|
env:
|
||||||
NEXT_PUBLIC_BASE_URL: ${{ inputs.TARGET_URL }}
|
NEXT_PUBLIC_BASE_URL: ${{ inputs.TARGET_URL }}
|
||||||
@@ -105,12 +106,12 @@ jobs:
|
|||||||
run: pnpm run check:wcag
|
run: pnpm run check:wcag
|
||||||
|
|
||||||
- name: 📦 Unused Dependencies Scan (depcheck)
|
- name: 📦 Unused Dependencies Scan (depcheck)
|
||||||
if: always()
|
if: always() && steps.deps.outcome == 'success'
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: pnpm dlx depcheck --ignores="*eslint*,*typescript*,*tailwindcss*,*postcss*,*prettier*,*@types/*,*husky*,*lint-staged*,*@next/*,*@lhci/*,*commitlint*,*cspell*,*rimraf*,*@payloadcms/*,*start-server-and-test*,*html-validate*,*critters*,*dotenv*,*turbo*"
|
run: pnpm dlx depcheck --ignores="*eslint*,*typescript*,*tailwindcss*,*postcss*,*prettier*,*@types/*,*husky*,*lint-staged*,*@next/*,*@lhci/*,*commitlint*,*cspell*,*rimraf*,*@payloadcms/*,*start-server-and-test*,*html-validate*,*critters*,*dotenv*,*turbo*"
|
||||||
|
|
||||||
- name: 🔗 Markdown & HTML Link Check (Lychee)
|
- name: 🔗 Markdown & HTML Link Check (Lychee)
|
||||||
if: always()
|
if: always() && steps.deps.outcome == 'success'
|
||||||
uses: lycheeverse/lychee-action@v2
|
uses: lycheeverse/lychee-action@v2
|
||||||
with:
|
with:
|
||||||
args: --accept 200,204,429 --timeout 15 content/ app/ public/
|
args: --accept 200,204,429 --timeout 15 content/ app/ public/
|
||||||
@@ -118,7 +119,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 🎭 LHCI Desktop Audit
|
- name: 🎭 LHCI Desktop Audit
|
||||||
id: lhci_desktop
|
id: lhci_desktop
|
||||||
if: always()
|
if: always() && steps.deps.outcome == 'success'
|
||||||
env:
|
env:
|
||||||
LHCI_URL: ${{ inputs.TARGET_URL }}
|
LHCI_URL: ${{ inputs.TARGET_URL }}
|
||||||
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
||||||
@@ -126,7 +127,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 📱 LHCI Mobile Audit
|
- name: 📱 LHCI Mobile Audit
|
||||||
id: lhci_mobile
|
id: lhci_mobile
|
||||||
if: always()
|
if: always() && steps.deps.outcome == 'success'
|
||||||
env:
|
env:
|
||||||
LHCI_URL: ${{ inputs.TARGET_URL }}
|
LHCI_URL: ${{ inputs.TARGET_URL }}
|
||||||
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
|
||||||
|
|||||||
Reference in New Issue
Block a user