我们将一起学习如何使用 GitHub Actions 在 web 浏览器中学习 Rust。 我们将在一个 页中编写、构建、测试、运行和发布所有内容。 重要的是不需要安装软件!
Rust 是当今最热门的编程语言之一。 极客大神们都喜欢 Rust。 Rust 连续4年在 Stackoverflow 上评选为最受欢迎的编程语言。
Rust 最独特和最受欢迎的特性之一是其万能的编译器,可以帮助您在程序运行之前确保正确性和安全性。 因此,Rust 开发人员可以编写高性能但安全的程序。 Rust 消除了某些类型的编程 bug,尤其是那些难以纠正的运行时 bug。
如果你还没有尝试过用 Rust 编写程序,那就来试试吧! Rust 就好像魔法一样。 我相信 Rust 会成为下一个 Java 或者 Ruby —— 一种未来每个人都需学习的编程语言。
然而,学习 Rust 通常需要您在计算机上安装一系列命令行工具。 Rust 编译器速度很慢,因为整个 Rust 范例是用来深入分析源代码,并在编译时发现 bug 的,而不是在运行时崩溃的时候才发现 bug。
像 Rust Playground 和 REPL.it 这样的在线 Rust IDE 是一些简单的工具,它们没有充分利用第三方编译器目标和库的 Rust 生态系统。
所以你可能想知道,是否可以在不安装软件包的情况下,学习Rust。
通过 GitHub Actions,我们可以直接在你的浏览器中学习和探索 Rust 代码。
现在有了世界级的CI/CD,Github Actions 可以轻松地自动化所有软件工作流。 我们可以在 GitHub 上构建、测试和部署代码。 按照我们希望的方式进行代码审查、branch 管理和 issue 分类工作。
https://github.com/second-state/learn-rust-with-github-actions
Hello world
首先,创建一个新的 GitHub 仓库o,并添加一个 Rust source 文件。 让我们添加一个 src/main.rs 文件,内容如下:
fn main() {println!("Hello, world!");}
Src / main.rs 文件
接下来,返回到 GitHub 仓库的 root /目录,并添加 Cargo.toml 文件。 这个文件描述了 Rust cargo 系统应该如何构建和打包我们的项目。
[package]name = "hello"version = "0.1.0"authors = ["ubuntu"]edition = "2018"[dependencies]
(存储库根目录下的 Cargo.toml 文件)
现在我们有一个完整的Rust项目,来建立和运行它吧。
Github actions
属性下的 yml 文件中定义了工作流 actions 及其事件触发器 .Github / workflows 目录。 我们可以自己编写 yml 文件,或者从现成的模板中选择一个。
Github Actions 中的Rust工作流模板
让我们在这里花一分钟来解释 GitHub Actions 是如何工作的,默认的 rust.yml 文件显示:
name: Ruston:push:branches: [ master ]pull_request:branches: [ master ]jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: Buildrun: cargo build —verbose- name: Runrun: cargo run
(我们将默认的 Rust 模板的最后一行更改为 cargo run)
现在,无论何时将代码推送到这个存储库,都会执行 rust.yml 中的操作。 您可以在 Actions 选项卡下看到结果。
每次推送到 GitHub repo 都会触发Actions来运行
单击结果,然后单击左侧的 build 选项卡以查看详细信息。 构建和运行部分提供了最相关的细节。 Run 部分显示了 Hello World 的成功打印!
Run action 显示 Hello World!
接下来,可以在 Cargo.toml中添加第三方依赖项,并在 main.rs中构建复杂的 Rust 应用程序。 只要有人输入代码,我们就能看到结果。
测试驱动开发(TDD)
当然,实际上很少有开发人员运行程序将文本打印到控制台。 上面的 cargo run 只是一个演示。 实际上,多数开发人员为这些函数编写函数和测试用例。 编译和构建之后最频繁的任务是运行测试用例。 让我们看看GitHub Action 是如何做到的。
创建一个新的 GitHub 存储库,然后在下面添加一个 src/lib.rs 文件。 正如我们所看到的,它定义了一个 Rust 函数和一些测试用例。 它可以作为一个 Rust 库包来构建和发布。
pub fn say(s: &str) -> String {let r = String::from("hello ");return r + s;}#[cfg(test)]mod tests {use super::*;#[test]fn say_hello() {let result = say("ssvm");assert!(result.contains("hello ssvm"));}}
(Src /lib.rs 文件)
然后,返回到 GitHub 存储库的 root /目录,并添加以下 Cargo.toml 文件。
[package]name = "hello"version = "0.1.0"authors = ["ubuntu"]edition = "2018"[lib]name = "hello_lib"path = "src/lib.rs"crate-type =["cdylib"][dependencies]
单击 Actions 并添加默认的Rust工作流。 正如上文所提到的,默认的 Rust 工作流以 cargo test结束,这正是我们在这里所需要的。
这次,我们需要的是默认的Rust工作流操作
每次将新代码推入此 repo 时,工作流都会运行。 您可以单击打开一个成功的构建,并查看构建和测试action的输出。
Github Actions构建并测试 Rust 程序
下一步是什么
现在你可以用 Rust 代码进行实验,并且可以免费使用 GitHub 构建、测试和运行,并且可以用于完整的控制台输出,而且这都是在你的浏览器中进行!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!