Cómo volví mi fork multilenguaje y lo publiqué bien
Cómo volví mi fork multilenguaje y lo publiqué bien
Este post marca el renacer de mi blog. No porque ahora tenga ideas a desbordar que contar al mundo; simplemente porque por fin volví a tocarlo en serio. Recuerdo ver una publicación sobre el creador de OpenClaw: decenas de repos, el primer viral fue OpenClaw.
Es como la vida, pensé. De muchos tiros alguno da en el blanco. Así que seguimos.
Ahora que he vuelto y ha salido Claude 4.6 y demás, todo es muy incierto. Mis propias correcciones que ahora te comparto fueron contribuidas en su mayor parte por Claude. No sé cuánto crédito debería tomar. Si por curiosidad sigues leyendo y te interesa cómo publicar a node, te dejo aquí abajo mi brief:
Índice
Lo que sí trabajé
Miré el historial de mi rama y, para ser honesto, me di cuenta de que hubo un error en el que tuve que ser el human in the loop y cambiar el scope de mi cuenta de npmjs creando una organización.
Lo que pasa es que debes tener el mismo handle en github y en npmjs (o en una org). Ese detalle te lo comparto.
Las líneas que de verdad importan
Esto es lo principal de mi publish.yml:
on:
workflow_run:
workflows: ["ci-main", "ci-dev"]
types: [completed]
branches: [main, dev]
jobs:
publish:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.workflow_run.head_branch }}
- uses: actions/setup-node@v4
with:
node-version: 22.14
registry-url: https://registry.npmjs.org
- name: Upgrade npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --ignore-scripts
- name: Bump version with dev suffix
if: ${{ github.event.workflow_run.head_branch == 'dev' }}
run: |
COMMIT=$(git rev-parse --short HEAD)
VERSION=$(node -p "require('./package.json').version")
npm version "${VERSION}-dev.${COMMIT}" --no-git-tag-version
- name: Publish to npm
run: npm publish --access public
- name: Publish to GitHub Packages
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm publish --access public
devpublica con sufijo en base al commit y sin ensuciarlatestmainpublica limpio- npm no depende de tokens eternos vulnerables
- GitHub Packages queda sincronizado
- el publish solo corre si CI pasó antes
No olvidar tener el mismo handle, así tienes tu publicación bonita sincronizada en Github
Repo
Estas son las fuentes.
- repo: 4xeverburga/nuxt-alpine-spanishplus
- workflows:
.github/workflows