天天看點

github rust 項目Travis ci配置

複制github倉庫[opt]

rust fmt使用

安裝

運作

配置

宏使用

與Travis ci內建

rust clippy使用

類别(組)

travis-ci

簡介

.travis.yml

內建步驟

這裡我們要基于tentacle做二次開發

fmt是一個根據樣式規則格式化Rust代碼的工具

可以在項目根目錄下建立一個名為<code>rustfmt.toml</code>或 <code>.rustfmt.toml</code>的TOML檔案,規則使用variable = value的形式定義;

有哪些可使用的規則可以用<code>rustfmt --help=config</code>指令檢視;

可以使用<code>rustfmt --print-config default rustfmt.toml</code>指令生成一個預設的配置檔案

eg.

如果你的代碼不像被rustfmt格式化,可以使用 #[rustfmt::skip]

為防止rustfmt格式化宏或屬性,請使用#[rustfmt::skip::macros(target_macro_name)] 或 #[rustfmt::skip::attributes(target_attribute_name)]

使用–check辨別,如果代碼格式不正确,rustfmt将退出并顯示出需要修改的代碼塊.

Travis設定可能看起來像這樣:

clippy有一組lints集合,用于檢查你代碼中錯誤和壞味道,幫助你改進你的Rust代碼。

clippy::all(預設配置,排除nursery,pedantic和cargo)

clippy::correctness(代碼完全錯誤或非常無用,預設情況下會導緻硬錯誤)

clippy::style (應該以更慣用的方式編寫的代碼)

clippy::complexity (執行簡單但複雜的代碼)

clippy::perf (可以以更快的方式編寫的代碼)

clippy::pedantic (非常嚴格lints,預設情況下已禁用)

clippy::nursery (尚未完成的新的lints,預設情況下處于關閉狀态)

clippy::cargo (對cargo manifest進行檢查,預設情況下為關閉狀态)

預設情況下,僅啟用以下類别:

clippy::style

clippy::correctness

clippy::complexity

clippy::perf

自動應用修改建議,幫助你修改代碼

可以在項目根目錄下建立一個名為<code>rustfmt.toml</code>或 <code>.rustfmt.toml</code>的TOML檔案,規則使用variable = value的形式定義,所有的lint規則請參考:https://rust-lang.github.io/rust-clippy/master/index.htm。

<code>cargo clippy</code>指令在執行的時候,首先會尋找工作目錄中是否有.clippy.toml,如果有的話就會将其作為clippy配置,如果沒有的話就會再尋找工作目錄中是否有clippy.toml檔案,如果還是沒有的話,就會去尋找上層目錄是否有.clippy.toml和clippy.toml檔案。

可以在你的代碼中使用clippy提供的宏,允許、警告、不允許Clippy lints,分别對應

#[allow(…)]、#[warn(…)]、#[deny(…)]。

全部lints隻警告 (#![deny(clippy::all)])

可以同時使用兩個lint 組 (#![deny(clippy::all)], #![deny(clippy::pedantic)])

部分lints(#![deny(clippy::single_match, clippy::box_vec)], etc.)

allow/warn/deny可以修飾單個函數或子產品

如果您不想在代碼中使用clippy宏,則可以通過在運作期間将額外的标志傳遞給<code>cargo clippy</code>指令來全局啟用/禁用clippy,eg:

<code>cargo clippy -- -A clippy::lint_name</code>

<code>cargo clippy -- -W clippy::lint_name</code>

<code>cargo clippy -- -W clippy::pedantic</code>

<code>cargo clippy -- -Aclippy::all -Wclippy::useless_format -Wclippy</code>::…

請注意,<code>-D warnings</code>如果在代碼中發現任何警告,将導緻建構失敗。其中包括rustc發現的警告(例如dead_code)。如果要避免這種情況,請在代碼中使用<code>#![deny(clippy::all)]</code>宏或在指令行中使用<code>-D clippy::all</code>。

Travis CI 是一個開源的,分布式的持續內建服務,用來建構及測試在 GitHub 托管的代碼。

它提供了對多種程式設計語言的支援,包括 Ruby、JavaScript、Java、Scala、PHP、Haskell 和 Erlang 在内的多種語言。許多知名的開源項目使用它來在每次送出的時候進行建構測試,比如 Ruby on Rails,Ruby 和 Node.js

Travis 要求項目的根目錄下面,必須有一個.travis.yml檔案。這是配置檔案,指定了 Travis 的行為。該檔案必須儲存在 Github 倉庫裡面,一旦代碼倉庫有新的 Commit,Travis 就會去找這個檔案,執行裡面的指令。

1、使用你的github賬号授權登入https://travis-ci.com/signin

2、點選頭像setting

github rust 項目Travis ci配置

3.點選manage repositories on Github,跳轉到github授權頁

github rust 項目Travis ci配置

4.選擇需要ci的項目,請求授權

5. 授權後,可以看到目前授權的項目,點選setting 可以進入建構詳情頁面

github rust 項目Travis ci配置

6. 點選trigger build可立即觸發建構

github rust 項目Travis ci配置

7.可以将目前的建構狀态圖示放到項目的readme中

github rust 項目Travis ci配置