Skip to content

Commit

Permalink
Port from dev to feat-track-2.0 of casper-ecosystem#149 casper-ecosys…
Browse files Browse the repository at this point in the history
…tem#175 Part of casper-ecosystem#144

Enable CI CD check on feat-track-2.0
  • Loading branch information
gRoussac committed Jul 17, 2024
1 parent dd65198 commit f533494
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 32 deletions.
37 changes: 32 additions & 5 deletions .github/workflows/ci-casper-client-rs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,19 @@ jobs:

steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: rustfmt, clippy

- name: Get stable from rust-toolchain.toml
id: stable-toolchain
run: |
VER=$(sed -nr 's/channel\s+=\s+\"(.*)\"/\1/p' rust-toolchain.toml)
echo "RUST_CHANNEL=$VER" >> $GITHUB_ENV
- name: Install Toolchain - Stable
run: |
rustup update --no-self-update ${{ env.RUST_CHANNEL }}
rustup component add --toolchain ${{ env.RUST_CHANNEL }} rustfmt rust-src clippy
rustup default ${{ env.RUST_CHANNEL }}
rustup target add wasm32-unknown-unknown
- name: Fmt
uses: actions-rs/cargo@v1
Expand All @@ -45,6 +53,12 @@ jobs:
command: clippy
args: --all-targets

- name: Clippy with no features
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets --no-default-features

- name: Doc
uses: actions-rs/cargo@v1
with:
Expand All @@ -55,3 +69,16 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: test

- name: Test with no features
uses: actions-rs/cargo@v1
with:
command: test
args: --no-default-features

# // Awaits https://github.com/casper-network/casper-node/pull/4714
# - name: Build lib for Wasm with no features
# uses: actions-rs/cargo@v1
# with:
# command: build
# args: --lib --target wasm32-unknown-unknown --no-default-features
34 changes: 13 additions & 21 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
[package]
name = "casper-client"
version = "2.0.0" # when updating, also update 'html_root_url' in lib.rs
authors = ["Marc Brinkmann <[email protected]>", "Fraser Hutchison <[email protected]>", "Zachary Showalter <[email protected]>"]
authors = [
"Marc Brinkmann <[email protected]>",
"Fraser Hutchison <[email protected]>",
"Zachary Showalter <[email protected]>",
]
edition = "2021"
description = "A client library and binary for interacting with the Casper network"
documentation = "https://docs.rs/casper-client"
Expand All @@ -18,56 +22,44 @@ path = "lib/lib.rs"
name = "casper-client"
path = "src/main.rs"
doc = false
required-features = ["async-trait", "clap", "clap_complete", "std-fs-io"]

[features]
default = ["async-trait", "clap", "clap_complete", "tokio", "std-fs-io"]
default = ["async-trait", "clap", "clap_complete", "std-fs-io"]
std-fs-io = ["casper-types/std-fs-io"]

[dependencies]
async-trait = { version = "0.1.59", default-features = false, optional = true }
base16 = "0.2.1"
casper-types = { version = "5.0.0", features = ["std"] }
clap = { version = "4", features = [
"cargo",
"deprecated",
"wrap_help",
], optional = true }
clap_complete = { version = "4", default-features = false, optional = true }
clap = { version = "~4.4", features = ["cargo", "deprecated"], optional = true }
clap_complete = { version = "~4.4", default-features = false, optional = true }
hex-buffer-serde = "0.4.0"
humantime = "2"
itertools = "0.11.0"
jsonrpc-lite = "0.6.0"
num-traits = "0.2.15"
once_cell = "1"
rand = "0.8.5"
reqwest = { version = "0.11.13", features = ["json"] }
reqwest = { version = "0.12.5", features = ["json"] }
schemars = "0.8.13"
serde = { version = "1", default-features = false, features = ["derive"] }
serde-map-to-array = "1.1.1"
serde_json = { version = "1", features = ["preserve_order"] }
thiserror = "1.0.34"
tokio = { version = "1.23.0", features = [
"macros",
"net",
"rt-multi-thread",
"sync",
"time",
], optional = true }
thiserror = "1"
tokio = { version = "1.38.0", features = ["macros", "rt", "sync", "time"] }
uint = "0.9.4"

[dev-dependencies]
tempfile = "3.7.1"

[build-dependencies]
vergen = { version = "7", default-features = false, features = ["git"] }

[patch.crates-io]
casper-types = { git = "https://github.com/casper-network/casper-node.git", branch = "feat-2.0" }

[package.metadata.deb]
features = ["vendored-openssl"]
revision = "0"
assets = [["./target/release/casper-client", "/usr/bin/casper-client", "755"], ]
assets = [["./target/release/casper-client", "/usr/bin/casper-client", "755"]]
extended-description = """
Package for Casper Client to connect to Casper Node.
Expand Down
36 changes: 32 additions & 4 deletions build.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,35 @@
use vergen::{Config, ShaKind};
use std::io;
use std::process::Command;

const GIT_HASH_ENV_VAR: &str = "GIT_SHA_SHORT";

fn main() {
let mut config = Config::default();
*config.git_mut().sha_kind_mut() = ShaKind::Short;
let _ = vergen::vergen(config);
match get_git_commit_hash() {
// If the git commit hash is retrieved successfully, set the environment variable
Ok(git_hash) => {
println!("cargo:rustc-env={GIT_HASH_ENV_VAR}={git_hash}");
}
// If there's an error retrieving the git commit hash, print a note and set the environment variable to "unknown"
Err(e) => {
println!("cargo:warning=Note: Failed to get git commit hash: {}", e);
println!("cargo:rustc-env={GIT_HASH_ENV_VAR}=unknown");
}
}
}

fn get_git_commit_hash() -> Result<String, io::Error> {
// Build the command to retrieve the short git commit hash
let output = Command::new("git")
.arg("rev-parse")
.arg("--short")
.arg("HEAD")
.output()?;

if output.status.success() {
// Parse the raw output into a string and trim the newline character
Ok(String::from_utf8_lossy(&output.stdout).trim().to_string())
} else {
// Return an error if the command failed
Err(io::Error::new(io::ErrorKind::Other, "Git command failed"))
}
}
2 changes: 2 additions & 0 deletions rust-toolchain.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[toolchain]
channel = "1.73.0"
4 changes: 2 additions & 2 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const APP_NAME: &str = "Casper client";

static VERSION: Lazy<String> =
Lazy::new(
|| match option_env!("VERGEN_GIT_SHA_SHORT").map(|sha| sha.to_lowercase()) {
|| match option_env!("GIT_SHA_SHORT").map(|sha| sha.to_lowercase()) {
None => crate_version!().to_string(),
Some(git_sha_short) => {
if git_sha_short.to_lowercase() == "unknown" {
Expand Down Expand Up @@ -175,7 +175,7 @@ fn cli() -> Command {
))
}

#[tokio::main]
#[tokio::main(flavor = "current_thread")]
async fn main() {
let arg_matches = cli().get_matches();
let (subcommand_name, matches) = arg_matches.subcommand().unwrap_or_else(|| {
Expand Down

0 comments on commit f533494

Please sign in to comment.