La automatización de la construcción implica la creación de scripts o la automatización del proceso de compilación de código fuente de computadora en código binario . A continuación se muestra una lista de herramientas notables asociadas con la automatización de procesos de compilación.
Basado en marca
- GNU make , una implementación de make ampliamente utilizada con un gran conjunto de extensiones
- hacer , una herramienta de compilación clásica de Unix
- mk , desarrollado originalmente para la versión 10 de Unix y Plan 9 , y portado a Unix como parte de plan9port
- MPW Make , desarrollado para el Mac OS clásico y similar pero no compatible con Unix make; el macOS moderno (OS X) viene con la marca GNU y la marca BSD; disponible como parte del taller del programador de Macintosh como descarga gratuita y no admitida de Apple
- hacer
- PVCS -make, básicamente sigue el concepto de make pero con un notable conjunto de características de sintaxis únicas [1]
Hacer incompatible
- Apache Ant , popular para el desarrollo de plataformas Java y utiliza un formato de archivo XML
- Apache Buildr , sistema de compilación de código abierto, basado en Rake , brinda todo el poder de la creación de scripts en Ruby con soporte integral para la mayoría de las habilidades que se buscan en un sistema de compilación.
- Apache Maven , una herramienta de plataforma Java para la gestión de dependencias y la creación de software automatizada
- Sistema de construcción ASDF LISP para la construcción de proyectos LISP
- AAP , una herramienta de compilación basada en Python
- Bazel , una parte de Blaze (la herramienta de compilación propia de Google) escrita en Java, utilizando Starlark (sintaxis de archivo BUILD) para compilar proyectos en Java, C, C ++, Go, Python, Objective-C y otros
- BitBake , una herramienta basada en Python con el enfoque especial de distribuciones y paquetes para la compilación cruzada de Linux embebida
- Boot , una herramienta de gestión de dependencias y compilación de Java escrita en Clojure
- boost.build Para proyectos C ++, multiplataforma, basado en Perforce Jam
- Buck , un sistema de compilación desarrollado y utilizado por Facebook, escrito en Java, utilizando Starlark (sintaxis de archivo BUILD) como Bazel
- Buildout , un sistema de compilación basado en Python para crear, ensamblar e implementar aplicaciones a partir de múltiples partes
- Cabal , una arquitectura común para la construcción de aplicaciones y bibliotecas en el lenguaje de programación Haskell
- FinalBuilder , para desarrolladores de software de Windows. FinalBuilder proporciona un IDE gráfico para crear y ejecutar proyectos de compilación en una sola aplicación. El constructor final también incluye la capacidad de ejecutar la prueba unitaria, implementar proyectos web o instalar y probar aplicaciones.
- Flowtracer
- Gradle , un sistema de automatización y compilación de código abierto con un lenguaje específico de dominio (DSL) basado en Apache Groovy , que combina características de Apache Ant y Apache Maven con características adicionales como una compilación incremental confiable
- Grunt , una herramienta de construcción para el desarrollo web front-end
- Gulp , otra herramienta de construcción para front-end
- IncrediBuild
- Leiningen , una herramienta que proporciona tareas comúnmente realizadas en proyectos de Clojure, incluida la automatización de compilación
- Mill , una herramienta de construcción basada en Scala inspirada en Bazel
- Mix , la herramienta de construcción de Elixir
- MSBuild , el motor de compilación de Microsoft
- NAnt , una herramienta similar a Ant para .NET Framework
- Ninja , un pequeño sistema de compilación centrado en la velocidad mediante el uso de scripts de compilación generados por sistemas de compilación de nivel superior
- Perforce Jam , una herramienta de construcción de Perforce , inspirada en Make
- Psake , herramienta de automatización de compilaciones y lenguaje específico de dominio escrita en PowerShell
- Sistema de compilación Qt
- Rake , una herramienta de construcción basada en Ruby
- sbt , una herramienta de compilación construida sobre un DSL basado en Scala
- SCons , basado en Python, con funcionalidad integrada similar a autoconf / automake
- Stack , una herramienta para construir proyectos Haskell , administrar sus dependencias (compiladores y bibliotecas) y para realizar pruebas y evaluaciones comparativas.
- Tup, [2] un sistema de compilación rápido basado en archivos
- Tweaker , que permite que las definiciones de tareas se escriban en cualquier idioma (o idiomas mezclados) al tiempo que proporciona una interfaz coherente para todos ellos.
- Visual Build , un software de interfaz gráfica de usuario para compilaciones de software
- Waf , una herramienta basada en Python para configurar, compilar e instalar aplicaciones. Es un reemplazo para otras herramientas como Autotools , Scons , CMake o Ant
Construir generación de scripts
Estas herramientas generadoras no se compilan directamente, sino que generan archivos para ser utilizados por una herramienta de compilación nativa (como las que se enumeran en las dos secciones anteriores).
- BuildAMation , una herramienta multiplataforma, que usa una sintaxis declarativa en scripts C #, que construye código C / C ++ en una terminal usando múltiples subprocesos, o genera archivos de proyecto para Microsoft Visual Studio, Xcode o MakeFiles.
- CMake genera archivos para varias herramientas de compilación, como make , ninja , Xcode de Apple y Microsoft Visual Studio . [3] Algunos IDE también utilizan directamente CMake como Qt Creator , [4] KDevelop y GNOME Builder . [5]
- GNU Build System (también conocido como autotools), una colección de herramientas para compilaciones portátiles. Estos en particular incluyen Autoconf y Automake , herramientas de plataforma cruzada unix que juntas generan archivos MAKE localizados apropiados.
- GYP (Genere sus proyectos): creado para Chromium ; es otra herramienta que genera archivos para el entorno de compilación nativo
- yo hago
- Meson , un sistema de compilación optimizado para el rendimiento y la usabilidad, se basa en ninja en Linux, Visual Studio en Windows y Xcode en macOS. Meson también es utilizado directamente por GNOME Builder . [5]
- Meister de software OpenMake
- Premake , una herramienta basada en Lua para crear archivos MAKE, archivos de Visual Studio, proyectos de Xcode y más
- qhacer
Integración continua
- AnthillPro , automatización de compilación con soporte de canalización para la automatización y las pruebas de implementación. Multiplataforma, multiplataforma
- Apache Continuum - descontinuado
- Azure DevOps (anteriormente TFS y VSTS [6] ), pueden ser servicios alojados en Azure o capacidades de compilación de servidores autohospedados
- Bamboo , software de integración continua
- Implementaciones y canalizaciones de Bitbucket , integración continua para repositorios alojados en Bitbucket [7]
- Buildbot , una herramienta de integración continua de desarrollo de software basada en Python que automatiza el ciclo de compilación / prueba
- Buildkite , una plataforma para ejecutar pipelines de integración continua rápidos, seguros y escalables en su propia infraestructura.
- CircleCI , un servicio de integración continua alojado para proyectos de Github y Bitbucket.
- CodePipeline , un servicio de entrega continua totalmente administrado que ayuda a automatizar las canalizaciones de lanzamiento para actualizaciones rápidas y confiables de aplicaciones e infraestructura.
- CruiseControl , para Java y .NET
- Vaya a la entrega continua , código abierto, multiplataforma
- GitLab ( GitLab Runner ), integración continua y servidor git
- Hudson , un motor extensible de integración continua
- Jenkins , un motor extensible de integración continua, bifurcado de Hudson
- Spinnaker , servicio de entrega continua de múltiples nubes de código abierto de Netflix y Google
- TeamCity
- Travis CI , un servicio de integración continua alojado
Gestión de la configuración
- Ansible (basado en Python)
- CFEngine
- Chef (basado en Ruby)
- LCFG
- Ingeniero de lanzamiento de software OpenMake
- Nutria
- Marioneta (basada en Ruby)
- Salt (basada en Python)
- Rex (basado en Perl)
Meta-construcción
Una herramienta de meta-construcción es capaz de construir muchos proyectos diferentes usando un subconjunto de herramientas de construcción existentes. Dado que estos suelen proporcionar una lista de paquetes para compilar, a menudo también se denominan administradores de paquetes .
- Pkgsrc , administrador de paquetes de NetBSD y otros sistemas operativos.
- Portage , administrador de paquetes de la distribución Gentoo Linux
- Nix , administrador de paquetes funcional para Linux y macOS que se centra en compilaciones reproducibles , utilizado para la distribución de NixOS Linux.
- Guix , administrador de paquetes funcional basado en Nix, utilizado para la distribución GuixSD Linux.
- Conocimiento colectivo , administrador de paquetes multiplataforma para reconstruir el entorno de software para los flujos de trabajo de investigación
- Homebrew , administrador de paquetes para macOS
Otros
- checkinstall , checkinstall es un programa que supervisa un procedimiento de instalación y crea un paquete estándar para su distribución.
- Open Build Service , un servicio alojado para ayudar a crear paquetes para varias distribuciones de Linux.
Resumen de licencias
Nombre de la herramienta | Lenguaje descriptivo | Licencia |
---|---|---|
AAP | receta | GNU GPL |
Hormiga | XML | Licencia Apache 2.0 |
AnthillPro | Envuelve Make, Ant, Maven, MsBuild, Nant, etc. para procesos controlados de construcción, implementación y prueba. | Interrumpido |
Bambú | integración continua | Software de prueba |
Bazel | CONSTRUIR / Starlark, un DSL similar a Python | Licencia Apache 2.0 |
BuildAMation | C # para scripts de compilación, XML para dependencias de alto nivel | Nueva licencia BSD |
Constructor | Rubí | Licencia Apache 2.0 |
Bota | Clojure | Licencia pública de Eclipse |
Capistrano | XML | Licencia MIT |
CMake | usa el archivo CMakeLists.txt | Nueva licencia BSD |
Marco de conocimiento colectivo | Python scripts con JSON API y JSON meta-descripción | Nueva licencia BSD |
Continuum | ? | Licencia Apache 2.0 |
CruiseControl | XML | Licencia estilo BSD |
FinalBuilder | IDE gráfico con soporte para Ant / NAnt, MSBuild, JScript, VBScript, IronPython , PowerShell | Software de prueba |
Gradle | DSL basado en Groovy; DSL basado en Kotlin | Licencia Apache 2.0 |
Jenkins | integración continua | Licencia MIT |
Cerveza casera | Rubí | Licencia BSD simplificada |
Leiningen | Clojure | Licencia pública de Eclipse |
fabricar | usa Makefile | Igual que el sistema operativo empaquetado |
Maven | Modelo de objeto del proyecto | Licencia Apache 2.0 |
Sistema de construcción Meson | DSL personalizado | Licencia Apache 2.0 |
Molino | Scala | Licencia MIT |
Marca MPW | ? | Freeware |
MSBuild | XML | Licencia MIT |
NAnt | XML | GNU GPL |
hacer | usa Makefile | Freeware |
Servicio de compilación abierta | utiliza varios formatos de descripción de paquetes e imágenes (spec, dsc, ARCH, kiwi) | GNU GPL |
Perforce Jam | usa Jamfile | Interrumpido |
Rastrillo | Rubí | Licencia MIT |
sbt (herramienta de construcción simple) | DSL basado en Scala | Nueva licencia BSD |
SCons | Pitón | Licencia MIT |
Servidor de Team Foundation | MSBuild, Windows Presentation Foundation, JSON - Interfaces REST, Programática (Puede generar definiciones a través del código) | Software de prueba |
Tweaker (herramienta de construcción) | Cualquiera (Ant, bash, batch, C, Erlang, Java, SQL y VBScript de forma predeterminada, con interfaz de terceros para extensiones) | GNU GPLv3 |
Construcción visual | XML | Software de prueba |
Waf | Pitón | Nueva licencia BSD |
Referencias
- ^ discusión de la lista de correo sobre la portabilidad de scripts de PVCS-make a GNU-make , De: Paul D. Smith, Asunto: Re: PVCS a GNU, Fecha: 2003-02-25
- ^ http://gittup.org/tup/
- ^ "cmake-generators (7) - CMake 3.11.1 Documentación" . cmake.org .
- ^ "Configuración de CMake - Qt Creator Manual" . doc.qt.io .
- ^ a b "El entorno de desarrollo de GNOME Builder incorpora muchas funciones para GNOME 3.28 - Phoronix" . www.phoronix.com .
- ^ https://azure.microsoft.com/en-us/blog/introducing-azure-devops/
- ^ https://confluence.atlassian.com/bitbucket/build-test-and-deploy-with-pipelines-792496469.html Multiplataforma
enlaces externos
- Lista de software de automatización de compilación en Software Wiki, un wiki externo