Remake is a versatile CLI tool that transforms Makefiles into OCI artifacts, enabling easy management and execution across various environments. With seamless integration into CI/CD workflows and a catalog of reusable Makefiles, it streamlines build processes and ensures consistency in software development.
Remake is a powerful Command-Line Interface (CLI) tool designed to enhance the packaging, distribution, and execution of Makefiles as OCI (Open Container Initiative) artifacts. This tool provides centralized management of build scripts, ensuring seamless integration into Continuous Integration/Continuous Deployment (CI/CD) pipelines while maintaining consistent execution across diverse environments.
Makefile Catalog: Remake includes a comprehensive Makefile catalog located in the catalog/ directory. This catalog hosts reusable OCI-published Makefiles organized by category:
catalog/runtimes/): Includes Makefiles for detecting the host OS and for installing the Podman runtime.catalog/services/): Allows users to easily spin up services, such as a Redis container with customizable configurations.Example of running a Redis container:
remake run -f oci://ghcr.io/TrianaLab/make-redis:latest run
# Alternatively:
remake run -f trianalab/make-redis run
CI/CD Compatibility: Remake is tailored for use in modern CI/CD workflows, ensuring that Makefile-based build logic is versioned and reproducible across various pipelines, fostering consistency and reliability.
Centralized Storage: By storing Makefiles in container registries, Remake acts as a single source of truth. This allows for easier sharing and reuse of build definitions across different teams.
Caching and Performance: The local caching mechanism reduces redundant downloads, significantly speeding up build processes while decreasing load on registries.
Version Control and Rollback: Users can conveniently tag build scripts with OCI tags, facilitating straightforward rollback to previous versions when necessary.
Secure Distribution: Remake ensures safe artifact delivery through OCI registry authentication and transport security measures.
Remake comes with straightforward commands for various tasks, including logging in to registries, pushing and pulling Makefiles, and executing specific targets from local or remote Makefile artifacts. Here are some key command examples:
Login to an OCI registry:
remake login [registry] -u <username> -p <password>
Push a Makefile to a registry:
remake push <registry/repo:tag> [-f <path>]
Pull a Makefile from a registry:
remake pull <registry/repo:tag> [--no-cache]
Run targets from a Makefile:
remake run [targets...] [-f <path|registry/repo:tag>] [--make-flag <flag>] [--no-cache]
View current configuration:
remake config
Check installed version:
remake version
Contributions are encouraged, and users can fork the repository, create new branches for features, and add or update Makefile artifacts. Upon completion, users can commit their changes and open a Pull Request to submit their contributions for review.
Remake transforms how developers can manage and execute Makefiles, making it an essential tool for developers working with containerized environments.
No comments yet.
Sign in to be the first to comment.