awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
magefile avatar

magefile/mage

0
View on GitHub↗
4,666 stars·274 forks·Go·Apache-2.0·8 vuesmagefile.org↗

Mage

Mage est un outil d'automatisation de build et un orchestrateur de workflow qui utilise des fonctions Go pour définir des cibles de build exécutables au lieu d'un langage spécifique au domaine (DSL). Il fonctionne comme un système de build compilé et un exécuteur de tâches, mappant les fonctions Go exportées vers des cibles en ligne de commande.

L'outil se distingue en compilant les définitions de build en binaires statiques pour une distribution sur des machines sans dépendances. Il utilise le cache binaire haché pour éviter les compilations redondantes et prend en charge l'empaquetage du runtime et des tâches définies dans un seul exécutable autonome.

La plateforme couvre la gestion des dépendances via des arbres de dépendances de tâches et des comparaisons d'horodatage de fichiers pour garantir que les cibles sont mises à jour dans le bon ordre. Elle fournit une interface en ligne de commande proposant le namespace de cibles, l'autocomplétion shell et la génération automatique d'aide dérivée des commentaires de fonction via réflexion. Le contrôle d'exécution inclut le support pour le traitement de tâches parallèle et série, ainsi que l'annulation avec gestion de timeout.

Le système s'intègre avec les modules Go et permet l'inclusion de bibliothèques externes pour étendre les capacités des cibles de build.

Features

  • Build and Task Automation - Functions as a build and task automation tool that uses Go functions to orchestrate development workflows.
  • Build Automation - Implements build automation specifically for Go by using Go functions to define and execute targets.
  • Function-to-Target Mappings - Maps exported Go functions to executable build targets to allow standard language features to define automation logic.
  • Dependency Graph Step Executions - Resolves a graph of prerequisite functions to ensure each dependency runs exactly once before the primary target executes.
  • Command Line Task Runners - Acts as a command line task runner for managing dependencies and executing targets in a manner similar to Make.
  • Compiled Build Systems - Functions as a compiled build system that transforms Go-based build definitions into static binaries.
  • Build Target Definitions - Provides a system for defining executable build targets using standard Go functions.
  • Standalone Binary Packaging - Packages the runtime and all defined build tasks into a single standalone executable.
  • Project Workflow Tools - Ships a CLI that integrates task execution, namespaces, and help documentation to streamline project workflows.
  • Static Binary Compilers - Compiles build definition files into a temporary or static binary to execute tasks with native performance and type safety.
  • Task Dependency Management - Executes a tree of prerequisite functions before a main task runs to ensure each dependency executes only once.
  • Build Automation Tools - Provides a tool for automating the build lifecycle using Go functions as the definition language.
  • Workflow Orchestrators - Organizes complex development pipelines and task dependencies using Go's standard library and package management.
  • Task Prerequisites - Enables declaring dependencies between build functions to ensure all prerequisites are satisfied before a task executes.
  • Command Namespacing - Organizes related build commands into hierarchical namespaces to prevent naming collisions.
  • Build Cache Hashing - Stores compiled versions of build files based on content hashes to skip redundant compilation when source code is unchanged.
  • Build Script Library Integration - Enables the use of standard and third-party Go packages directly within build targets.
  • Standalone Binary Compilation - Compiles build definitions into a single standalone executable binary for use on machines without a Go installation.
  • CLI Target Autocompletion - Offers shell tab completion for build targets and flags to improve command-line discoverability.
  • Compiler Caches - Utilizes hashed binary caching of compiled build files to avoid redundant compilation overhead.
  • Build Constraints - Uses standard Go build tags to filter automation targets based on the host operating system or architecture.
  • Host-Based Target Constraints - Uses Go build constraints to include or exclude specific targets based on the host OS or architecture.
  • External Target Reuse - Enables the import of build functions from external Go packages to be used as runnable targets.
  • Help Generators - Extracts function comments and signatures via reflection to automatically generate command-line documentation and usage guides.
  • Help Text Generators - Converts function comments into brief summaries and detailed help text for targets and flags.
  • Task Execution Sequencing - Runs a sequence of tasks serially in a specified order and halts if any task fails.
  • Parallel Task Execution - Allows running dependent tasks concurrently for speed or sequentially to maintain a strict execution order.
  • Build Environment Configurations - Allows customization of binary paths, cache locations, and rebuild triggers via environment variables.
  • Shell Command Execution - Runs system commands with an interface that handles environment variable expansion and simplifies execution.
  • Timestamp-Based Build Optimization - Compares source and destination timestamps to determine if a build target requires an update.
  • Automation Engine Argument Passing - Accepts positional and optional flag parameters from the command line and converts them into specific types.
  • CI/CD Pipeline Orchestration - Provides the ability to define and execute sequential build, test, and deployment targets for automated delivery pipelines.
  • Go Module Organization - Integrates with Go modules to manage dependencies and workspace configurations during target execution.
  • Build System Extensibility - Extends build target capabilities by integrating existing Go packages without requiring a formal plugin system.
  • Installation-Free Execution - Allows running automation targets directly using the runtime to avoid installing a dedicated binary in the environment.
  • Documentation Comment Generators - Converts function comments into summaries and help text to provide guidance on available targets and flags.
  • Asynchronous Task Cancellation - Passes a timeout-aware context to tasks and dependencies to cancel execution when a time limit expires.
  • Context-Aware Cancellation - Passes timeout-aware contexts through the execution chain to allow graceful termination of long-running build processes.
  • Build and Compilation Tools - Makefile-like build tool for projects.
  • Build Automation - Make-like build tool using Go code.

Historique des stars

Graphique de l'historique des stars pour magefile/mageGraphique de l'historique des stars pour magefile/mage

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Mage

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Mage.
  • sbt/sbtAvatar de sbt

    sbt/sbt

    4,929Voir sur GitHub↗

    Sbt is a JVM build tool and dependency management system designed for Scala and Java. It functions as a multi-project build orchestrator that manages the compilation of source code, resolves external libraries from remote repositories, and packages binaries for distribution. The project is distinguished by its interactive build system, which provides a read-eval-print loop for real-time state inspection and task execution. It utilizes a dependency-graph based execution model to process tasks and maintains a type-safe key-value store for dynamic build configuration. Its capabilities cover JVM

    Scala
    Voir sur GitHub↗4,929
  • cake-build/cakeAvatar de cake-build

    cake-build/cake

    4,179Voir sur GitHub↗

    Cake is a cross-platform build automation system and scripting framework that allows users to define software build pipelines using C# scripts. It functions as a CI/CD pipeline orchestrator and build runner, providing a strongly-typed domain-specific language to simplify the orchestration of compilation, testing, and packaging processes across Windows, Linux, and macOS. The system ensures reproducible build environments by pinning the versions of build tools, modules, and dependencies. It distinguishes itself by enabling a C# scripting workflow with full IDE support, including autocomplete, s

    C#build-automationbuild-automation-toolbuild-tool
    Voir sur GitHub↗4,179
  • moonrepo/moonAvatar de moonrepo

    moonrepo/moon

    3,687Voir sur GitHub↗

    Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It functions as a dependency graph orchestrator that executes build targets in topological order and utilizes input hashing to cache results and skip redundant work. The project features a polyglot toolchain manager that automates the installation and versioning of language runtimes and CLI tools to ensure environment consistency. It also includes a plugin framework based on WebAssembly, allowing developers to extend build logic and toolchain behavior using any supported language.

    Rustbuild-systembuild-toolbun
    Voir sur GitHub↗3,687
  • cosmtrek/airAvatar de cosmtrek

    cosmtrek/air

    23,694Voir sur GitHub↗

    Air is a live reload tool and build automation utility for Go applications. It functions as a hot reloading orchestrator that monitors source files for changes to automatically recompile and restart application binaries. The tool distinguishes itself by offering a managed build and execution pipeline, allowing for custom build commands, environment variable injection, and platform-specific build overrides based on the host operating system. It further synchronizes the development cycle by using a proxy to signal web browsers to reload automatically when static files or source code are modifie

    Go
    Voir sur GitHub↗23,694
Voir les 30 alternatives à Mage→

Questions fréquentes

Que fait magefile/mage ?

Mage est un outil d'automatisation de build et un orchestrateur de workflow qui utilise des fonctions Go pour définir des cibles de build exécutables au lieu d'un langage spécifique au domaine (DSL). Il fonctionne comme un système de build compilé et un exécuteur de tâches, mappant les fonctions Go exportées vers des cibles en ligne de commande.

Quelles sont les fonctionnalités principales de magefile/mage ?

Les fonctionnalités principales de magefile/mage sont : Build and Task Automation, Build Automation, Function-to-Target Mappings, Dependency Graph Step Executions, Command Line Task Runners, Compiled Build Systems, Build Target Definitions, Standalone Binary Packaging.

Quelles sont les alternatives open-source à magefile/mage ?

Les alternatives open-source à magefile/mage incluent : sbt/sbt — Sbt is a JVM build tool and dependency management system designed for Scala and Java. It functions as a multi-project… cake-build/cake — Cake is a cross-platform build automation system and scripting framework that allows users to define software build… moonrepo/moon — Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It… cosmtrek/air — Air is a live reload tool and build automation utility for Go applications. It functions as a hot reloading… go-task/task — Task is a YAML-based task runner and build tool used to define and automate development workflows. It functions as a… gradle/gradle — Gradle is a build automation tool for the Java Virtual Machine that functions as a polyglot build orchestrator. It…