Control de versiones para proyectos de staging y producción
Usar proyectos separados de producción y de staging (pruebas) para construir y
probar tus workflows antes de empezar a usarlos en producción es una práctica
segura y eficiente. El control de versiones
hace que este proceso sea fluido. Esta guía te explica cómo configurar tus
proyectos de OpenFn y tu repositorio de GitHub, y te da dos ejemplos de cómo
gestionar tu flujo Staging > Production: uno para proyectos nuevos y otro para
proyectos existentes en los que quieres agregar un proyecto y una rama de
staging.
Configuración para proyectos nuevos
- Primero, crea un proyecto
Productiony otroStagingen OpenFn (2 proyectos)
- Elige o crea un repositorio de GitHub para tu proyecto, y crea una rama
staging

-
Conecta tus proyectos a las ramas
mainystaging, respectivamente. Sigue esta guía para configurar la conexión -
En cada repositorio, crea un archivo
.jsvacío para tu job. Asegúrate de que tengan el mismo nombre y la misma ruta en cada repositorio (por ejemplo,upsert-contacts.js). Estos archivos guardarán el código del job al que se vincularán en el siguiente paso. -
Cuando conectaste las ramas a tus proyectos en el paso 3, se creó automáticamente un archivo
spec.yamlen la rama después de la primera sincronización (junto con otros dos archivos de configuración). Abre estos archivos en GitHub y busca tu job en el archivo. Reemplaza el contenido debodyporpath: {path to the related js file}. Haz esto tanto en la ramamaincomo en la ramastaging.

- ¡Ya está todo configurado!
- Para sincronizar un cambio de tu proyecto de staging a producción con la
aplicación de OpenFn, ve a tu proyecto
Stagingen OpenFn y edita tu job. Luego ve aSettings> Sync toGitHubdel proyecto y haz clic enInitiate Sync to Branch. - También puedes editar directamente el código del job en GitHub y hacer commit
de los cambios en la rama
stagingen GitHub. - Cuando hayas hecho commit de los cambios en tu rama
staging, verás en GitHub un aviso de que hubo cambios recientes. Haz clic enCompare & pull request.
- Crea una pull request. Incluirá automáticamente todos los cambios que se hicieron en los archivos de la rama staging.

-
Según el flujo de trabajo de GitHub de tu equipo, pide a alguien que apruebe y haga merge de la pull request, o haz clic en
Merge pull request. -
Tus cambios se desplegarán automáticamente en tu proyecto
Productionde OpenFn (vinculado a la ramamainde GitHub).
Configuración para proyectos existentes
- Primero, asegúrate de que el código de todos tus jobs esté guardado en
archivos
.jsseparados (comoNotify-CHW-upload-successful.js) en GitHub, vinculados en tuspec.yamlde esta forma:
Notify-CHW-upload-successful:
name: Notify-CHW-upload-successful
adaptor: '@openfn/language-http@latest'
enabled: true
# credential:
# globals:
body: |
path: ./workflow/Notify-CHW-upload-successful.js
Encontrarás más información sobre esta configuración en nuestra documentación de GitHub.
- Con esto listo, crea una nueva rama
stagingen GitHub a partir de tu rama de producciónmain, que guarda tu proyecto actual. Para hacerlo, en tu repositorio de GitHub, entra enBranches(donde dice1 Branchen la captura de pantalla de abajo).
- Haz clic en
New branch, ponle un nombre comostagingy, si ya tienes varias ramas, asegúrate de que el origen seamain. Luego haz clic enCreate new branch.

-
Ve a tu nueva rama
staging. Este paso es importante. Fíjate en que la nueva rama contiene ahora los 3 archivos de configuración (config.json,spec.yamlystate.json) que estaban en la rama main. Elimínalos de la ramastaging. En los pasos siguientes se crearán otros nuevos, propios de la rama staging. -
Ahora ve a OpenFn y crea un nuevo proyecto
Staging. -
Sigue esta guía para configurar la conexión de GitHub con tu rama
staging, y haz clic enInitiate a sync(desde la páginaSettings > Sync to GitHubdel proyecto). Esto creará los archivos de configuración necesarios en la rama de GitHub. -
En el archivo
spec.yamlrecién generado en la ramastagingde GitHub, vincula los archivos.jsde tus jobs como se explica en el paso 1. -
Cuando inicies una nueva sincronización desde OpenFn, el código de los jobs de los workflows configurados en la aplicación se sincronizará con los archivos de job de OpenFn correspondientes en GitHub.
-
Para hacer cambios futuros en tu proyecto "Staging", sigue los pasos 7 a 12 de la sección
Setup for new projectsde esta guía.