Agregando archivos generados con Webpack en un paquete de WebDeploy

Es muy probable que, en los tiempos que corren, estemos usando Webpack (o algo similar) para generar los archivos .js y .css minificados de nuestro sitio web. A estos archivos no los mantenemos versionados en nuestro repositorio de código, los usamos sólo para desplegar nuestra aplicación, y tampoco los tenemos incluidos en nuestro archivo de proyecto. Por este motivo es que al compilar nuestra aplicación y generar el paquete de despliegue para nuestra Azure Web App, estos archivos por defecto no están incluidos dentro del paquete.

Para solucionar este problema podemos tomar dos caminos: Sigue leyendo

Anuncio publicitario

Global Azure Bootcamp – Buenos Aires – 2018

El pasado sábado 21 de abril participé de la organización del Global Azure Bootcamp en Buenos Aires por cuarto año consecutivo, junto con Nicolás Bello Camiletti (@nbellocam) y Pablo Di Loreto (@pablodiloreto), y la colaboración de Matías Quaranta (@Ealsur) que este año lamentablemente no pudo acompañarnos presencialmente ese día.

Tuvimos 83 asistentes que durante 8 horas de evento disfrutaron de 12 charlas y 2 workshops, dictados por 16 oradores, entre los cuales contamos con 8 Microsoft MVPs, cubriendo temas como: Cómputo (VMs, Azure App Service, Azure Service Fabric, Azure Functions), Azure Resource Manager, Azure Key Vault, Visual Studio Team Services, Azure Networking, IoT Hub, Application Insights, Azure Active Directory, Xamarin, Cognitive Services, Azure Container Service (AKS), SQL Managed Instance, BI & Analytics, y más!

Durante el evento también tuve la oportunidad de dar una de las charlas: Manejando proyectos en Azure y VSTS:

Espero que hayan disfrutado del evento, y ¡nos vemos en 2019!

@gjbellmann

Generando el paquete de despliegue de una Web App desde la línea de comandos

Cuando queremos poner nuestro proyecto web dentro de un pipeline de Integración continua/Despliegue continuo (CI/CD por sus siglas en inglés), vamos a necesitar generar los paquetes de despliegue durante nuestro proceso de build, para luego poder usarlos desde la etapa de release.

MSBuild nos permite generarlos, usando los siguientes 4 parámetros:

/p:DeployOnBuild=true

/p:WebPublishMethod=Package

/p:PackageAsSingleFile=true

/p:PackageLocation="C:\temp\MyWeb.zip"

¿Qué significa cada parámetro? Sigue leyendo

Agregando un custom deployment script para Azure Functions desplegadas desde GitHub con un proyecto web de test

El escenario

Como parte de una aplicación con Azure Functions existente, que contiene unas Functions HTTP que generan archivos Excel y los devuelven como un byte array, quería agregar un proyecto web para tests de integración que al ser ejecutados descargaran el archivo Excel resultante. Estas Azure Functions se despliegan automáticamente desde un repositorio en GitHub.

Kudu y los scripts de despliegue

Al usar GitHub para desplegar cualquier aplicación en Azure App Service (incluyendo Azure Function), Kudu elige el script de despliegue de acuerdo al tipo de proyecto. Tal como dice en el artículo Customizing deployments de la wiki de Kudu, si tenemos un proyecto web en el repositorio, entonces compila y despliega ese proyecto. Sigue leyendo

git

Moviendo algunos archivos de un repositorio Git a otro conservando la historia

Muchos proyectos comienzan como algo chico, dentro de un único repositorio Git, pero a medida que el tiempo avanza, y el proyecto se vuelve algo más complejo, es probable que surja la necesidad de separar una parte del proyecto a otro repositorio. Cuando esto sucede, algo que no queremos es perder toda la historia de esos archivos, o sea, queremos mover los archivos correspondientes a un subproyecto junto con toda su historia.

Objetivo

  • Mover el directorio 1 desde el repositorio A al repositorio B.

Restricciones

  • No queremos mover el resto de los directorios del repositorio A.
  • Queremos mantener el historial de cambios del directorio que moveremos al repositorio B.

Preparándonos para mover

Lo primero que haremos será clonar nuestro repositorio, ¡lo último que queremos es perder información valiosa por ejecutar un comando errado! Sigue leyendo