#ci #docker-image #io #example #workflow #building #multi-platform

bin+lib fnichol-cime

一个 Rust CI 构建/测试/发布工作流程的演示,支持多平台测试、二进制构建、Docker 镜像构建和 Crates.io 发布

6 个版本 (破坏性)

0.7.0 2021 年 4 月 23 日
0.6.0 2021 年 4 月 19 日
0.5.0 2021 年 2 月 26 日
0.4.0 2021 年 2 月 26 日
0.1.1-dev2021 年 2 月 23 日

#1083 in Rust 模式

MPL-2.0 许可证

76KB
2K SLoC

Shell 1.5K SLoC // 0.0% comments Pan 202 SLoC // 0.1% comments PowerShell 113 SLoC // 0.3% comments Rust 54 SLoC // 0.2% comments


fnichol-cime

一个 Rust CI 构建/测试/发布工作流程的演示,支持多平台测试、二进制构建、Docker 镜像构建和 Crates.io 发布。

CI CI Status
Bors enabled
最新版本 Latest version
文档 Documentation
包下载 Crate downloads
GitHub 下载 Github downloads
Docker 拉取 Docker pulls
许可证 Crate license
目录

命令行界面

用法

这个程序很简单。要问候当前登录用户,请运行

> fnichol-cime "$USER"
Hello, jdoe!

有关更多帮助和完整用法,请使用 --help-h 标志

> fnichol-cime --help

安装

install.sh (预构建的二进制文件)

https://fnichol.github.io/fnichol-cime/install.sh 提供了一个安装程序,该程序安装适用于 Linux、macOS、Windows 和 FreeBSD 等常见系统的合适预构建二进制文件。它可以下载并在本地运行或按以下所示通过 "curl-bash" 风格将其输入到 shell 解释器中。请注意,如果您反对这种想法,请随意查看以下一些替代方案。

要将系统上的最新发布版安装到 $HOME/bin

> curl -sSf https://fnichol.github.io/fnichol-cime/install.sh | sh

当安装程序以 root 运行时,默认安装目录为 /usr/local/bin

> curl -sSf https://fnichol.github.io/fnichol-cime/install.sh | sudo sh

有一个从主分支的 HEAD 构建的 夜间 发布版可供安装

> curl -sSf https://fnichol.github.io/fnichol-cime/install.sh \
    | sh -s -- --release=nightly

要查看完整选项,请使用 help 使用方法。

> curl -sSf https://fnichol.github.io/fnichol-cime/install.sh \
    | sh -s -- --help

GitHub 发布版(预构建的二进制文件)

每个版本都包含在GitHub 发布中发布的二进制工件。程序 install.sh 从这个位置下载其工件,因此这可以作为手动替代方案。每个工件都附带 MD5 和 SHA256 校验和,以帮助在目标系统上验证工件。

Docker 镜像

每个版本都附带最小镜像(包括从主分支的 HEAD 构建的 夜间构建版本),并发布到 Docker Hub。入口点直接调用二进制文件,因此任何传递给 docker run 的参数都将传递给程序。例如,要显示完整的帮助用法

> docker run fnichol/fnichol-cime --help

Cargo 安装

如果您的系统上已安装 Rust,则可以使用 Cargo 直接安装

> cargo install fnichol-cime

从源码安装

要从源安装,您可以克隆 Git 仓库,使用 Cargo 构建,并将二进制文件复制到目标目录。这将从主分支的最新提交构建项目,这可能不对应于最新稳定版本

> git clone https://github.com/fnichol/fnichol-cime.git
> cd fnichol-cime
> cargo build --release
> cp ./target/release/fnichol-cime /dest/path/

这个包执行一个高度专业化的算法,以动态生成针对特定主题的英文问候语。这是严肃的业务。

用法

这个包位于 crates.io 上,您可以通过将包添加到项目 Cargo.toml 文件中的依赖项来使用它

[dependencies]
fnichol-cime = { version = "0.7.0", default-features = false }

请注意,默认功能包括构建 CLI 所需的依赖项,而对于库则不需要。

示例

示例:问候人类

假设我们有一个名叫 Jane 的人

let greeting = fnichol_cime::greeting("Jane");
// #=> "Hello, Jane!"

CI 状态

构建(主分支)

操作系统 目标 稳定的 Rust
FreeBSD x86_64-unknown-freebsd FreeBSD Build Status
Linux arm-unknown-linux-gnueabihf Linux Build Status
Linux aarch64-unknown-linux-gnu Linux Build Status
Linux i686-unknown-linux-gnu Linux Build Status
Linux i686-unknown-linux-musl Linux Build Status
Linux x86_64-unknown-linux-gnu Linux Build Status
Linux x86_64-unknown-linux-musl Linux Build Status
macOS x86_64-apple-darwin macOS Build Status
Windows x86_64-pc-windows-msvc Windows Build Status

测试(主分支)

操作系统 稳定的 Rust 夜间 Rust
FreeBSD FreeBSD Stable Test Status FreeBSD Nightly Test Status
Linux Linux Stable Test Status Linux Nightly Test Status
macOS macOS Stable Test Status macOS Nightly Test Status
Windows Windows Stable Test Status Windows Nightly Test Status

注意:还测试了最低支持 Rust 版本 (MSRV),可以在CI 仪表板中查看。

检查(主分支)

状态
代码检查 Lint Status
格式化 Format Status

行为准则

本项目遵守 贡献者公约。通过参与,您应遵守此公约。请向 [email protected] 报告任何不可接受的行为。

问题

如果您对这个项目有任何问题或疑问,请通过 GitHub 问题 联系我们。

贡献

欢迎您为新的功能、修复或更新做出贡献,无论大小;我们总是很高兴收到拉取请求,并尽最大努力尽快处理它们。

在您开始编码之前,我们建议通过 GitHub 问题 讨论您的计划,特别是对于更雄心勃勃的贡献。这给其他贡献者一个机会来指明正确的方向,对您的方案提供反馈,并帮助您了解是否有人正在做同样的事情。

发布历史

查看 变更日志 以获取完整的发布历史。

作者

Fletcher Nichol ([email protected]) 创建和维护。

许可证

在Mozilla公共许可证版本2.0下许可(LICENSE.txt)。

除非您明确声明,否则根据MIT许可证定义,您有意提交用于作品包含的贡献,应按照上述方式许可,不附加任何额外条款或条件。

依赖项

~235KB