packages/kits - next/required / Setup - Stage (push) Successful in 41s
packages/ssg - next/required / Setup - Stage (push) Successful in 40s
packages/stl - next/required / Setup - Stage (push) Successful in 40s
packages/ui - next/required / Setup - Stage (push) Successful in 44s
services/docs - next/required / Setup - Hugo (push) Successful in 4s
services/static - next/required / Setup - Stage (push) Successful in 41s
packages/kits - next/required / Build - Configs & UI (push) Canceled after 0s
packages/kits - next/required / Lint - Kits (push) Canceled after 0s
packages/kits - next/required / Typecheck - Kits (push) Canceled after 0s
packages/kits - next/required / Test - Unit (push) Canceled after 0s
packages/kits - next/required / Build - Storybook (push) Canceled after 0s
packages/kits - next/required / Test - Storybook (push) Canceled after 0s
packages/kits - next/required / Build - Kits (push) Canceled after 0s
packages/ssg - next/required / Build - Configs (push) Canceled after 0s
packages/ssg - next/required / Lint - SSG (push) Canceled after 0s
packages/ssg - next/required / Typecheck - SSG (push) Canceled after 0s
packages/ssg - next/required / Build - SSG (push) Canceled after 0s
packages/stl - next/required / Build - Configs (push) Canceled after 0s
packages/stl - next/required / Lint - STL (push) Canceled after 0s
packages/stl - next/required / Typecheck - STL (push) Canceled after 0s
packages/stl - next/required / Test - STL (push) Canceled after 0s
packages/stl - next/required / Build - STL (push) Canceled after 0s
packages/ui - next/required / Build - Configs (push) Canceled after 0s
packages/ui - next/required / Lint - UI (push) Canceled after 0s
packages/ui - next/required / Typecheck - UI (push) Canceled after 0s
packages/ui - next/required / Test - Unit (push) Canceled after 0s
packages/ui - next/required / Build - Storybook (push) Canceled after 0s
packages/ui - next/required / Test - Storybook (push) Canceled after 0s
packages/ui - next/required / Build - UI (push) Canceled after 0s
services/www - next/required / Setup - Stage (push) Canceled after 46s
services/docs - next/required / Build - Hugo Site (push) Canceled after 0s
services/docs - next/required / Release - Docker Image (push) Canceled after 0s
services/docs - next/required / Deploy - Kubernetes (GitOps) (push) Canceled after 0s
services/docs - next/required / Verify - Production Rollout (push) Canceled after 0s
services/static - next/required / Build - Configs (push) Canceled after 0s
services/static - next/required / Lint - Static (push) Canceled after 0s
services/static - next/required / Typecheck - Static (push) Canceled after 0s
services/static - next/required / Build - Static Site (push) Canceled after 0s
services/static - next/required / Deploy - S3 (push) Canceled after 0s
services/www - next/required / Build - Configs (push) Canceled after 0s
services/www - next/required / Lint - WWW (push) Canceled after 0s
services/www - next/required / Typecheck - WWW (push) Canceled after 0s
services/www - next/required / Build - Storybook (push) Canceled after 0s
services/www - next/required / Test - Unit (push) Canceled after 0s
services/www - next/required / Test - Storybook (push) Canceled after 0s
services/www - next/required / Build - WWW Service (push) Canceled after 0s
services/www - next/required / Build - Docker Image (push) Canceled after 0s
382 lines
12 KiB
YAML
382 lines
12 KiB
YAML
name: services/www - next/required
|
|
'on':
|
|
push:
|
|
branches:
|
|
- next
|
|
paths:
|
|
- services/www/**
|
|
- packages/ui/**
|
|
- packages/stl/**
|
|
- packages/i18n/**
|
|
- .gitea/workflows/services-www-next-required.yml
|
|
- ci/docker/www/**
|
|
- ci/config/nginx/**
|
|
- ci/scripts/**
|
|
- pnpm-lock.yaml
|
|
- ci/scripts/**
|
|
workflow_dispatch: null
|
|
concurrency:
|
|
group: ci-www-${{ github.ref_name }}
|
|
cancel-in-progress: true
|
|
permissions:
|
|
contents: read
|
|
actions: read
|
|
jobs:
|
|
setup-stage:
|
|
name: Setup - Stage
|
|
runs-on: apex-debian13
|
|
outputs: {}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Pack dependency cache
|
|
run: python3 ci/scripts/cache.py pack
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ steps.dependency-cache.outputs.key }}
|
|
path: .ci/pnpm-store.tar
|
|
retention-days: 7
|
|
build-configs:
|
|
name: Build - Configs
|
|
needs: setup-stage
|
|
runs-on: apex-debian13
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Build Rsbuild config
|
|
run: pnpm --filter @ermnvldmr/rsbuild-config build
|
|
- name: Build Storybook config
|
|
run: pnpm --filter @ermnvldmr/storybook-config build
|
|
- name: Upload Rsbuild Config
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: rsbuild-config-dist
|
|
path: packages/rsbuild-config/dist
|
|
retention-days: 30
|
|
- name: Upload Storybook Config
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: storybook-config-dist
|
|
path: packages/storybook-config/dist
|
|
retention-days: 30
|
|
- name: Build i18n package
|
|
run: pnpm --filter @ermnvldmr/i18n build
|
|
- name: Upload i18n dist
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: i18n-dist
|
|
path: packages/i18n/dist
|
|
retention-days: 30
|
|
lint-www:
|
|
name: Lint - WWW
|
|
needs: build-configs
|
|
runs-on: apex-debian13
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Download Rsbuild Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: rsbuild-config-dist
|
|
path: packages/rsbuild-config/dist
|
|
- name: Download i18n dist
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: i18n-dist
|
|
path: packages/i18n/dist
|
|
- name: Download Storybook Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: storybook-config-dist
|
|
path: packages/storybook-config/dist
|
|
- name: Lint WWW service
|
|
run: pnpm --filter @ermnvldmr/www lint
|
|
typecheck-www:
|
|
name: Typecheck - WWW
|
|
needs: build-configs
|
|
runs-on: apex-debian13
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Download Rsbuild Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: rsbuild-config-dist
|
|
path: packages/rsbuild-config/dist
|
|
- name: Download i18n dist
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: i18n-dist
|
|
path: packages/i18n/dist
|
|
- name: Download Storybook Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: storybook-config-dist
|
|
path: packages/storybook-config/dist
|
|
- name: Typecheck WWW service
|
|
run: pnpm --filter @ermnvldmr/www typecheck
|
|
build-storybook:
|
|
name: Build - Storybook
|
|
needs: build-configs
|
|
runs-on: apex-debian13
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Download Rsbuild Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: rsbuild-config-dist
|
|
path: packages/rsbuild-config/dist
|
|
- name: Download i18n dist
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: i18n-dist
|
|
path: packages/i18n/dist
|
|
- name: Download Storybook Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: storybook-config-dist
|
|
path: packages/storybook-config/dist
|
|
- name: Build WWW Storybook
|
|
run: pnpm --filter @ermnvldmr/www build-storybook
|
|
- name: Upload Storybook build
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: storybook-static
|
|
path: services/www/storybook-static/
|
|
retention-days: 30
|
|
test-www:
|
|
name: Test - Unit
|
|
needs: build-configs
|
|
runs-on: apex-debian13
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Download Rsbuild Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: rsbuild-config-dist
|
|
path: packages/rsbuild-config/dist
|
|
- name: Download i18n dist
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: i18n-dist
|
|
path: packages/i18n/dist
|
|
- name: Download Storybook Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: storybook-config-dist
|
|
path: packages/storybook-config/dist
|
|
- name: Test WWW service
|
|
run: pnpm --filter @ermnvldmr/www test:coverage
|
|
test-storybook:
|
|
name: Test - Storybook
|
|
needs: build-storybook
|
|
runs-on: apex-debian13
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Download Rsbuild Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: rsbuild-config-dist
|
|
path: packages/rsbuild-config/dist
|
|
- name: Download i18n dist
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: i18n-dist
|
|
path: packages/i18n/dist
|
|
- name: Download Storybook Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: storybook-config-dist
|
|
path: packages/storybook-config/dist
|
|
- name: Install Playwright browsers
|
|
run: pnpm --filter @ermnvldmr/www exec playwright install --with-deps chromium
|
|
- name: Download Storybook build
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: storybook-static
|
|
path: services/www/storybook-static/
|
|
- name: Serve Storybook and run tests with coverage
|
|
run: pnpm --filter @ermnvldmr/www test:storybook:ci
|
|
build-www:
|
|
name: Build - WWW Service
|
|
needs: build-configs
|
|
runs-on: apex-debian13
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup environment
|
|
run: bash ci/scripts/setup-env.sh 9.12.3 20
|
|
- name: Restore repository dependency cache
|
|
id: dependency-cache
|
|
run: python3 ci/scripts/cache.py restore
|
|
env:
|
|
CACHE_TOKEN: ${{ github.token }}
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Download Rsbuild Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: rsbuild-config-dist
|
|
path: packages/rsbuild-config/dist
|
|
- name: Download i18n dist
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: i18n-dist
|
|
path: packages/i18n/dist
|
|
- name: Download Storybook Config
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: storybook-config-dist
|
|
path: packages/storybook-config/dist
|
|
- name: Build WWW service (all locales)
|
|
run: pnpm --filter @ermnvldmr/www build:all
|
|
env:
|
|
RSDOCTOR: 'true'
|
|
- name: Upload Rsdoctor report
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: rsdoctor-report
|
|
path: services/www/rsdoctor/
|
|
retention-days: 30
|
|
build-docker:
|
|
name: Build - Docker Image
|
|
needs:
|
|
- lint-www
|
|
- typecheck-www
|
|
- test-www
|
|
- test-storybook
|
|
- build-www
|
|
runs-on: apex-debian13
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
outputs:
|
|
short_sha: ${{ steps.vars.outputs.short_sha }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Calculate Short SHA
|
|
id: vars
|
|
run: 'SHORT_SHA="sha-$(echo ${{ github.sha }} | cut -c1-7)"
|
|
|
|
echo "short_sha=$SHORT_SHA" >> $GITHUB_OUTPUT
|
|
|
|
'
|
|
- name: Log in to GitHub Container Registry
|
|
run: python3 ci/scripts/docker.py login
|
|
env:
|
|
REGISTRY: git.ermnvldmr.com
|
|
REGISTRY_USER: ${{ github.repository_owner }}
|
|
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
|
|
- name: Set up Docker Buildx
|
|
run: 'docker buildx version
|
|
|
|
docker buildx create --name apex-ci --driver docker-container --use
|
|
|
|
docker buildx inspect --bootstrap'
|
|
- name: Build and push Docker image
|
|
run: python3 ci/scripts/docker.py build
|
|
env:
|
|
TAGS: git.ermnvldmr.com/${{ github.repository }}/www:${{ steps.vars.outputs.short_sha
|
|
}}
|
|
LABELS: ''
|
|
BUILD_ARGS: 'COMMIT_SHA=${{ steps.vars.outputs.short_sha }}
|
|
|
|
VERSION=${{ steps.vars.outputs.short_sha }}
|
|
|
|
'
|
|
DOCKERFILE: ci/docker/www/Dockerfile
|
|
PLATFORMS: ''
|
|
PUSH: 'true'
|
|
CONTEXT: .
|
|
SOURCE_SHA: ${{ github.sha }}
|
|
RUN_ID: ${{ github.run_id }}
|
|
id: image
|
|
- name: Record tested digest provenance
|
|
env:
|
|
IMAGE_DIGEST: ${{ steps.image.outputs.digest }}
|
|
run: 'mkdir -p .ci
|
|
|
|
python3 - <<''PROVENANCE''
|
|
|
|
import json, os
|
|
|
|
from pathlib import Path
|
|
|
|
Path(''.ci/www-provenance.json'').write_text(json.dumps({''sha'': os.environ[''GITHUB_SHA''],
|
|
''digest'': os.environ[''IMAGE_DIGEST''], ''run_id'': os.environ[''GITHUB_RUN_ID''],
|
|
''repository'': os.environ[''GITHUB_REPOSITORY'']}))
|
|
|
|
PROVENANCE'
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: www-provenance
|
|
path: .ci/www-provenance.json
|
|
retention-days: 30
|