Much like npm, you can hook into the existing build steps, as well as create your own custom scripts: https://getcomposer.org/doc/articles/scripts.md
On Wed, Jun 7, 2017 at 4:29 PM, Brion Vibber <bvib...@wikimedia.org> wrote: > For JS dependencies, image optimizations etc the state of the art still > seems to be to have a local one-off script and commit the build artifacts > into the repo. (For instance TimedMediaHandler fetches some JS libs via npm > and copies/patches them into the resources/ dir.) > > For PHP deps we've got composer dependency installation for extensions, so > it seems like there's an opportunity to do other build steps in this > stage... > > Not sure offhand if that can be snuck into composer directly or if we'd > need to replace the "run composer" step with "run this script, which runs > composer and also does other build steps". > > -- brion > > > On Wed, Jun 7, 2017 at 10:18 AM, Joaquin Oltra Hernandez < > jhernan...@wikimedia.org> wrote: > > > *Context* > > > > We'd like to have a build script/process for an extension so that I can > > perform certain commands to install dependencies and perform > optimizations > > on the extension sources. For example, on front-end sources. > > > > Some examples could be: > > > > - Installing libraries from bower or npm and bundling them into the > > resources folder > > - Applying post processing steps to CSS with something like post css > > - Optimizing images > > > > We are aware of other projects that have build processes for building > > deployables, but not extensions. > > Such projects have different ways of dealing with this. A common way is > > having a repository called <Project>/deploy and in there you pull from > > <Project> and run the build scripts, and that is the repository that gets > > deployed. > > > > *Current system* > > > > The current way we usually do this (if we do) is run those build > > scripts/jobs on the developers machines and commit them into the git > > repository on master. > > > > With this system, if you don't enforce anything in CI, then build > processes > > may be skipped (human error). > > > > If you enforce it (by running the process and comparing with what has > been > > committed in CI) then patches merged to master that touch the same files > > will produce merge conflicts with existing open patches, forcing a > > rebase+rebuild on open patches every time one is merged on master. > > > > *Questions* > > > > Can we have a shared configuration/convention/system for having a build > > step on mediawiki extensions? > > > > - So that a build process is run > > - on CI jobs that require production assets like the selenium jobs > > - on the deployment job that deploys the extension to the beta > > cluster and to production > > > > How would it look like? Are any extensions doing a pre-deployment build > > step? > > > > Thanks. > > _______________________________________________ > > Wikitech-l mailing list > > Wikitech-l@lists.wikimedia.org > > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > _______________________________________________ > Wikitech-l mailing list > Wikitech-l@lists.wikimedia.org > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l