lightweight-sdk/.forgejo/workflows/release.yml
Nicolas e2d7207237
Some checks failed
CI / build-lint-test (push) Failing after 1m53s
CI / build-lint-test (pull_request) Successful in 1m58s
Bootstrap monorepo pnpm + migration de web-component
- Outillage complet : pnpm workspaces (catalog), Biome, TypeScript
  (project references, CommonJS/Node10), Vitest, TypeDoc (validation
  bloquante en CI), Changesets.
- Organisation des packages en catégories client/common/server.
- Migration de @lightweight-sdk/web-component (packages/client/) depuis
  l'ancien repo lightweight-sdk-web-component : code source copié à
  l'identique, aucune modification. package.json/tsconfig.json/README.md
  adaptés autour. Exclu de la validation TypeDoc stricte et de quelques
  règles Biome (formatage, noShadowRestrictedNames) puisque le code ne
  peut pas être édité pour s'y conformer - détails dans spec/packages.md.
- Workflows Forgejo Actions (.forgejo/workflows/) : ci.yml (lint, build,
  test, docs:check) et release.yml (publication sur le registre npm
  privé via Changesets).
- Script pnpm create-package <client|common|server> <nom> pour scaffolder
  les futurs packages.
- Documentation dans /spec (architecture, conventions, ci-cd, packages).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 07:10:13 +02:00

51 lines
1.5 KiB
YAML

# Publie les packages modifiés sur le registre npm privé Forgejo
# (https://git.dev.kyuno.fr/api/packages/kyuno/npm/) via Changesets.
#
# - déclenché sur push vers `main` (typiquement après le merge d'une PR
# "Version Packages" générée par `pnpm changeset version`)
# - `changeset publish` est idempotent par package : republie uniquement
# les packages dont la version locale n'existe pas encore sur le registre
# - prérequis côté instance : secret de repo REGISTRY_TOKEN, un jeton
# Forgejo avec les scopes write:package + read:package (Settings ->
# Applications) - le jeton automatique des Actions n'a pas ce droit
# sur cette instance (voir spec/ci-cd.md)
name: Release
on:
push:
branches:
- main
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Configure registry authentication
run: echo "//git.dev.kyuno.fr/api/packages/kyuno/npm/:_authToken=${REGISTRY_TOKEN}" >> .npmrc
env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
- name: Publish changed packages
run: pnpm changeset:publish
env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}