I recently started using Gulp.js to package all my CSS and JavaScript into single files, which I then include in my web app. My web app is written in Python (using Flask).
I obviously don't want to track the Gulp output CSS and JS files using git (since they're build output files).
I deploy my website to Azure Websites using push to deploy. That is, I simply run git push azure master
and Azure automatically figures out that I'm using Python, sets up virtualenv
, installs pip
dependencies and so on. This article describes how to set this up.
This process works great, but now that I've started using Gulp, I want to ensure that the concatenated JavaScript and CSS files are also produced on the server side whenever I deploy the website.
Moreover, in the future, I would like to have Azure run all the tests upon deployment, and only successfully deploy if they all pass.
Sadly, I have yet to find a satisfying solution for this workflow, since I cannot add custom steps to Azure's automatic deployment process.
I have tried writing a custom deployment script using Kudu (as suggested by this blog post), but doing so disables all the automatic steps Azure normally does; running azure site deploymentscript --python
only generates a very basic Kudu deployment file which doesn't handle reading in the web.config
file, setting up virtualenv
or installing the dependencies. I found no documentation regarding how to do this myself; I have use the default, automatic Azure deployment script (which gets generated server-side when I push the code, so I cannot access it myself) because otherwise stuff like virtualenv and pip dependencies aren't handled.
Is there any workaround available so that I may customize my deployment script (e.g. to run Gulp) while still correctly deploying Flask?