Ir al contenido principal

Crear un deploy a un servidor FTP con Bitbucket

Crear un deploy a un servidor FTP con Bitbucket

Bitbucket, al igual que otras plataformas de repositorios para desarrollo online, nos provee de herramientas de automatización para diversos aspectos de nuestro código. En este caso vamos a ver un sencillo script que nos puede ayudar a desplegar un repositorio directamente a un servidor FTP, esto nos puede servir si por ejemplo, estamos desarrollando un sitio en Wordpress (o cualquier otra tecnología). De esta manera nos evitamos la tediosa tarea de descargar el código en algún otro lado y subirlo nuevamente por FTP.

El script en sí, es algo sencillo. En el usaremos una imagen de Docker de una distribución Debian estándar. Establecemos que la rama que hará “deploy” será la rama master, pero puede ser cualquiera; las variables usadas se definen en las opciones del repositorio.

Debemos crear un archivo bitbucket-pipelines.yml en la raíz del proyecto con el siguiente contenido.

image: debian
pipelines:
  branches:
    master:
      - step:
          name: Deploy
          deployment: production
          script:
            - apt-get -qq install git-ftp
            - git config git-ftp.url ftp://$SERVER/htdocs/
            - git config git-ftp.user $USER
            - git config git-ftp.password $FTP_PASSWORD
            - git ftp push                  

#/htdocs/ hace referencia al directorio remoto donde se subirán los archivos
#La primera vez que se ejecute el deploy debe usarse "git ftp init" en lugar de "git ftp push

Como se puede notar en el comentario al final del código, la primera vez que ejecutemos el despliegue del proyecto, en lugar de usar “git ftp push”, se debe usar “git ftp init” para inicializar la primera carga de archivos al servidor FTP, posteriormente debe usarse de manera permanente “git ftp push”.

Para más opciones y referencia de git ftp, se puede consultar el manual en línea de git ftp.

Si también quieres ahondar más en los pipelines de Bitbucket, puedes consultar la documentación de Bitbucket Pipelines.

Entradas más populares de este blog

Crear un nuevo proyecto de React con Vite

Crear un nuevo proyecto de React con Vite Vite es una alternativa muy rápida y ligera al ya conocido create-react-app , y al decir alternativa muy rápida , no es exageración. Iniciar un proyecto es muy sencillo, en este caso usaré solamente yarn : $ yarn create vite react-project --template react Hay que resaltar que esto nos creará un proyecto de React con javascript, si deseas manejar typescript bastaría con cambiar el nombre del template a react-ts . Agregar proptypes, prettier y eslint En mí caso, estoy tratando de aprender a desarrollar en vim , así que los siguientes pasos dependen mucho de tu editor, pero estas dependencias son generales a casi cualquier proyecto React. Primero proptypes : $ yarn add proptypes Y ahora prettier y eslint: $ yarn add -D prettier eslint eslint-plugin-react Configurar eslint Para configurar eslint basta con ejecutar: $ yarn eslint --init # Seleccionar lo siguiente: # To check syntax and find problems # Javascript modules (import/e

Páginas rápidas con Github

Páginas rápidas con Github En los últimos días estuve leyendo el libro de git , como siempre, buscando mejorar el conocimiento para aplicarlo, por lo que fui haciendo anotaciones en un README de un repositorio de Github en formato Markdown . Este README lo quería convertir en un pequeño sitio web, pero no tenía ganas de pasarlo a HTML o hacer algún proceso en Jekyll , que es el CMS estático que maneja Github. Realizando una búsqueda de como convertir los archivos markdown de un repositorio a un sitio web, dí con este post en dev.to , dando con la respuesta a lo que buscaba y de manera muy sencilla con los siguientes pasos: Crear el archivo de configuración Sólo hay que añadir un archivo _config.yml con el siguiente contenido al repositiorio que deseas convertir en micro sitio: plugins : - jekyll - relative - links - jemoji relative_links : enabled : true collections : true include : - CONTRIBUTING.md - README.md - LICENSE.md - COPYING.md - CODE_