Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/magefile/mage
a Make/rake-like dev tool using Go
https://github.com/magefile/mage
buildscript go golang mage magefile make
Last synced: 4 days ago
JSON representation
a Make/rake-like dev tool using Go
- Host: GitHub
- URL: https://github.com/magefile/mage
- Owner: magefile
- License: apache-2.0
- Created: 2017-09-20T19:52:55.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-11-24T14:53:19.000Z (19 days ago)
- Last Synced: 2024-11-24T15:32:50.887Z (19 days ago)
- Topics: buildscript, go, golang, mage, magefile, make
- Language: Go
- Homepage: https://magefile.org
- Size: 7.66 MB
- Stars: 4,162
- Watchers: 44
- Forks: 257
- Open Issues: 122
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-go - mage - Mage is a make/rake-like build tool using Go. (Build Automation)
- my-awesome - magefile/mage - 11 star:4.2k fork:0.3k a Make/rake-like dev tool using Go (Go)
- fucking-awesome-go - mage - Mage is a make/rake-like build tool using Go. (Build Automation)
- awesome-tools - mage - a Make/rake-like dev tool using Go (Automation)
- awesome-ccamel - magefile/mage - a Make/rake-like dev tool using Go (Go)
- awesome-starred-test - magefile/mage - a Make/rake-like dev tool using Go (Go)
- awesome-repositories - magefile/mage - a Make/rake-like dev tool using Go (Go)
- awesome-go - mage - Mage is a make/rake-like build tool using Go. (Build Automation)
- go-awesome - **Mage** - a Make/Rake-like build tool using Go (Open source library / Build And Compile)
- jimsghstars - magefile/mage - a Make/rake-like dev tool using Go (Go)
- awesome-list - mage - like dev tool using Go | magefile | 2606 | (Go)
- awesome-go - mage - Mage is a make/rake-like build tool using Go. Stars:`4.2K`. (Build Automation)
- awesome-go - mage - Mage is a make/rake-like build tool using Go. (Build Automation)
- awesome-go-extra - mage - like dev tool using Go|3160|208|88|2017-09-20T19:52:55Z|2022-08-06T11:27:15Z| (Build Automation)
- awesome-go-with-stars - mage - Mage is a make/rake-like build tool using Go. (Build Automation)
- awesome - mage - a Make/rake-like build tool using Go (Go)
- awesome-make - Mage
- awesome-go-plus - mage - Mage is a make/rake-like build tool using Go. ![stars](https://img.shields.io/badge/stars-4173-blue) (Build Automation)
- awesome-go-cn - mage
- awesome-go-plus - mage - Mage is a make/rake-like build tool using Go. ![stars](https://img.shields.io/badge/stars-4143-blue) ![forks](https://img.shields.io/badge/forks-257-blue) (Build Automation)
- awesome-go - mage
- awesome-go - mage
README
[![Built with Mage](https://magefile.org/badge.svg)](https://magefile.org)
[![Build Status](https://travis-ci.org/magefile/mage.svg?branch=master)](https://travis-ci.org/magefile/mage) [![Build status](https://ci.appveyor.com/api/projects/status/n6h146y79xgxkidl/branch/master?svg=true)](https://ci.appveyor.com/project/natefinch/mage/branch/master)## About
Mage is a make-like build tool using Go. You write plain-old go functions,
and Mage automatically uses them as Makefile-like runnable targets.## Installation
Mage has no dependencies outside the Go standard library, and builds with Go 1.7
and above (possibly even lower versions, but they're not regularly tested).**Using GOPATH with go version < 1.17**
```
go get -u -d github.com/magefile/mage
cd $GOPATH/src/github.com/magefile/mage
go run bootstrap.go
```**Using Go Install with go version >= 1.18**
```
go install github.com/magefile/mage@latest
mage -init
```Instead of the @latest tag, you can specify the desired version, for example:
```
go install github.com/magefile/[email protected]
```**Using Go Modules**
```
git clone https://github.com/magefile/mage
cd mage
go run bootstrap.go
```This will download the code and then run the bootstrap script to build mage with
version infomation embedded in it. A normal `go get` (without -d) or `go
install` will build the binary correctly, but no version info will be embedded.
If you've done this, no worries, just go to `$GOPATH/src/github.com/magefile/mage`
and run `mage install` or `go run bootstrap.go` and a new binary will be created
with the correct version information.The mage binary will be created in your $GOPATH/bin directory.
You may also install a binary release from our
[releases](https://github.com/magefile/mage/releases) page.## Demo
[![Mage Demo](https://img.youtube.com/vi/GOqbD0lF-iA/maxresdefault.jpg)](https://www.youtube.com/watch?v=GOqbD0lF-iA)
## Discussion
Join the `#mage` channel on [gophers slack](https://gophers.slack.com/messages/general/)
or post on the [magefile google group](https://groups.google.com/forum/#!forum/magefile)
for discussion of usage, development, etc.# Documentation
See [magefile.org](https://magefile.org) for full documentation.
See [pkg.go.dev/github.com/magefile/mage/mage](https://pkg.go.dev/github.com/magefile/mage/mage)
for instructions on how to use Mage as a library.# Why?
Makefiles are hard to read and hard to write. Mostly because makefiles are
essentially fancy bash scripts with significant white space and additional
make-related syntax.Mage lets you have multiple magefiles, name your magefiles whatever you want,
and they're easy to customize for multiple operating systems. Mage has no
dependencies (aside from go) and runs just fine on all major operating systems,
whereas make generally uses bash which is not well supported on Windows. Go is
superior to bash for any non-trivial task involving branching, looping, anything
that's not just straight line execution of commands. And if your project is
written in Go, why introduce another language as idiosyncratic as bash? Why not
use the language your contributors are already comfortable with?# Thanks
If you use mage and like it, or any of my other software, and you'd like to show your appreciation, you can do so on my patreon:
[](https://www.patreon.com/join/natefinch?)