Web Analytics

publish-vscode-extension

⭐ 236 stars Spanish by HaaLeo

Publicar extensión de VS Code — Acción de GitHub

Build, Lint, Test and Deploy Coverage Status License Stars Donate

Acción de GitHub para publicar tu extensión de VS Code en el Open VSX Registry o en el Visual Studio Marketplace.

Todos los cambios importantes de v2 están listados en el registro de cambios

Uso

Para usar la Acción de GitHub, solo tienes que referenciar la acción en el archivo de tu flujo de trabajo.

Ejemplo

El siguiente ejemplo muestra un flujo de trabajo que publica una extensión tanto en el Open VSX Registry como en el Visual Studio Marketplace cuando se crea una nueva etiqueta:

on:
  push:
    tags:
      
  • "*"
name: Deploy Extension jobs: deploy: runs-on: ubuntu-latest steps:
  • uses: actions/checkout@v4
  • uses: actions/setup-node@v4
with: node-version: 20
  • run: npm ci
  • name: Publish to Open VSX Registry
uses: HaaLeo/publish-vscode-extension@v2 with: pat: ${{ secrets.OPEN_VSX_TOKEN }}
  • name: Publish to Visual Studio Marketplace
uses: HaaLeo/publish-vscode-extension@v2 with: pat: ${{ secrets.VS_MARKETPLACE_TOKEN }} registryUrl: https://marketplace.visualstudio.com
Para empaquetar la extensión solo una vez y publicar el archivo .vsix idéntico en ambos registros, se pueden usar los siguientes dos pasos en su lugar:

- name: Publish to Open VSX Registry
  uses: HaaLeo/publish-vscode-extension@v2
  id: publishToOpenVSX
  with:
    pat: ${{ secrets.OPEN_VSX_TOKEN }}
  • name: Publish to Visual Studio Marketplace
uses: HaaLeo/publish-vscode-extension@v2 with: pat: ${{ secrets.VS_MARKETPLACE_TOKEN }} registryUrl: https://marketplace.visualstudio.com extensionFile: ${{ steps.publishToOpenVSX.outputs.vsixPath }}
Para un ejemplo más completo y complejo, se puede consultar el flujo de trabajo de HaaLeo/vscode-timing.

Registro Open VSX

Para publicar en el Registro Open VSX, asegúrate de que el namespace de tu extensión fue creado previamente. Necesitas configurar el parámetro pat con tu token de acceso de Open VSX. Además, debes asegurarte de publicar únicamente una extensión que esté licenciada. Para más información sobre la línea temporal de Open VSX y la licencia de sus extensiones, consulta el blog de Brian King (sección "Licensing" y "Timeline").

Actualmente, esta acción de GitHub permite publicar extensiones que no especifican sus términos de licencia. Sin embargo, este comportamiento está obsoleto y una futura versión de esta acción rechazará extensiones sin licencia. Por lo tanto, te recomiendo encarecidamente publicar una extensión con una licencia (permisiva) como la licencia MIT.

Visual Studio Marketplace

Para subir tu extensión al VS Marketplace, necesitas configurar la opción pat con el correspondiente token de acceso. Además, la opción registryUrl debe establecerse en https://marketplace.visualstudio.com.

Parámetros de entrada

Puedes configurar cualquiera o todos los siguientes parámetros de entrada:

|Nombre |Tipo |¿Requerido? |Por defecto |Descripción |-|-|-|-|- |pat |string |sí |-|El token de acceso personal para el registro correspondiente. |extensionFile |string |no | - |Ruta al archivo vsix que será publicado. Esta opción tendrá preferencia cuando se establezca junto con packagePath. |registryUrl |string |no |https://open-vsx.org |Usar la API del registro en esta URL base |packagePath |string |no | ./ |Ruta a la extensión que se empaquetará y publicará. Cuando extensionFile también está configurado, se ignora packagePath. |baseContentUrl |string |no | - | Anteponer esta URL a todos los enlaces relativos en README.md. |baseImagesUrl |string |no | - | Anteponer esta URL a todos los enlaces relativos de imágenes en README.md. |yarn |boolean |no | false | Usar yarn en lugar de npm para empaquetar los archivos de la extensión. |dryRun |boolean |no | false | Establecer esta opción en true para empaquetar tu extensión pero no publicarla. Al usar esta opción, configura pat con un valor ficticio. |noVerify |boolean| no |false | Permitir publicar extensiones en el Visual Studio Marketplace que usan una API propuesta (enableProposedApi: true). Similar al argumento de línea de comando --noVerify de vsce. |preRelease |boolean| no |false | Marcar la versión de la extensión como pre-lanzamiento. Solo se considera al empaquetar una extensión. |dependencies |boolean| no |true | Verificar que las dependencias definidas en package.json existan en node_modules. Establecer en false si se usa pnpm o yarn v2+ con PnP. |skipDuplicate |boolean| no |false | Fallar silenciosamente si la versión ya existe en el marketplace. Equivalente a la opción --skip-duplicate de la CLI de vsce. |target |string| no | - | Arquitectura(s) objetivo en las que debe ejecutarse la extensión. Separe múltiples objetivos con espacios. Ejemplo: 'win32-x64 linux-x64'

Salidas

La acción expone las siguientes salidas:

|Nombre |Tipo |Descripción |-|-|- |vsixPath |string |La ruta al archivo VSIX empaquetado y publicado.

Contribución

Si encontraste un error o falta una función no dudes en abrir un issue. ¡Los Pull Requests son bienvenidos! Para comenzar a enviar cambios de código, por favor revisa primero el archivo CONTRIBUTING.md.

Soporte

Si te gusta esta extensión asegúrate de darle una estrella al repositorio. Siempre estoy buscando nuevas ideas y retroalimentación. Además, es posible donar vía paypal.

--- Tranlated By Open Ai Tx | Last indexed: 2025-12-07 ---