複制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

3.點選manage repositories on Github,跳轉到github授權頁
4.選擇需要ci的項目,請求授權
5. 授權後,可以看到目前授權的項目,點選setting 可以進入建構詳情頁面
6. 點選trigger build可立即觸發建構
7.可以将目前的建構狀态圖示放到項目的readme中