Earthly 开源项目教程

Earthly 开源项目教程

earthly Super simple build framework with fast, repeatable builds and an instantly familiar syntax – like Dockerfile and Makefile had a baby. earthly 项目地址: https://gitcode.com/gh_mirrors/ea/earthly

1. 项目介绍

Earthly 是一个简单易用的构建框架,旨在提供快速、可重复的构建过程,并且具有与 Dockerfile 和 Makefile 类似的语法。它通过在容器中运行构建,确保构建过程的隔离性和可移植性。Earthly 适用于各种编程语言和框架,支持单体仓库(monorepos)和多仓库(polyrepos),并且能够自动并行执行构建步骤,从而提高构建速度。

2. 项目快速启动

安装 Earthly

首先,你需要安装 Earthly。以下是安装命令:

sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/latest/download/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly && /usr/local/bin/earthly bootstrap --with-autocomplete'

创建 Earthfile

在你的项目根目录下创建一个名为 Earthfile 的文件,并添加以下内容:

VERSION 0.8
FROM golang:1.15-alpine3.13

WORKDIR /proto-example

proto:
    FROM namely/protoc-all:1.29_4
    COPY api/proto /defs
    RUN --entrypoint -- -f api/proto -l go
    SAVE ARTIFACT /gen/pb-go /pb AS LOCAL pb

build:
    COPY go.mod go.sum ./
    RUN go mod download
    COPY +proto/pb pb
    COPY main.go ./
    RUN go build -o build/proto-example main.go
    SAVE ARTIFACT build/proto-example

运行构建

在终端中运行以下命令来执行构建:

earthly +build

3. 应用案例和最佳实践

应用案例

Earthly 可以用于各种编程语言和框架的构建过程。例如,你可以使用 Earthly 来构建 Go 项目、Python 项目、Java 项目等。以下是一个简单的 Go 项目构建示例:

VERSION 0.8
FROM golang:1.15-alpine3.13

WORKDIR /app

build:
    COPY go.mod go.sum ./
    RUN go mod download
    COPY main.go ./
    RUN go build -o app main.go
    SAVE ARTIFACT app AS LOCAL app

最佳实践

  1. 模块化构建:将复杂的构建过程分解为多个小的、可重用的目标(targets),以便于管理和维护。
  2. 缓存利用:充分利用 Earthly 的缓存机制,减少重复构建的时间。
  3. 跨项目引用:通过 Earthly 的引用机制,可以在不同的项目之间共享构建目标和工件。

4. 典型生态项目

Earthly 可以与多种 CI/CD 工具集成,如 Jenkins、CircleCI、GitHub Actions 和 GitLab CI/CD。以下是一些典型的生态项目:

  • GitHub Actions:Earthly 可以作为 GitHub Actions 的工作流步骤,提供一致的构建环境。
  • Jenkins:通过 Jenkins Pipeline,可以使用 Earthly 来执行构建任务。
  • CircleCI:在 CircleCI 配置文件中调用 Earthly 命令,实现可重复的构建过程。

通过这些集成,Earthly 能够为你的 CI/CD 流程提供强大的支持,确保构建过程的可靠性和可重复性。

earthly Super simple build framework with fast, repeatable builds and an instantly familiar syntax – like Dockerfile and Makefile had a baby. earthly 项目地址: https://gitcode.com/gh_mirrors/ea/earthly

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕真想Harland

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值