anza_xtask/buildkite/
build.rs1use {serde::Serialize, std::collections::HashMap};
2
3#[derive(Debug, Serialize, PartialEq)]
4pub struct Build {
5 #[serde(skip_serializing_if = "Option::is_none")]
6 pub branch: Option<String>,
7
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub commit: Option<String>,
10
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub message: Option<String>,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub env: Option<HashMap<String, String>>,
16}
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21 use crate::buildkite::test_utils::assert_serialized_json;
22
23 #[test]
24 fn test_build_serialize_json() {
25 assert_serialized_json(
26 &Build {
27 branch: Some(String::from("${BUILDKITE_BRANCH}")),
28 commit: Some(String::from("${BUILDKITE_COMMIT}")),
29 message: Some(String::from("${BUILDKITE_MESSAGE}")),
30 env: Some(HashMap::from([(
31 String::from("TRIGGERED_BUILDKITE_TAG"),
32 String::from("${BUILDKITE_TAG}"),
33 )])),
34 },
35 r#"{
36 "branch": "${BUILDKITE_BRANCH}",
37 "commit": "${BUILDKITE_COMMIT}",
38 "message": "${BUILDKITE_MESSAGE}",
39 "env": {"TRIGGERED_BUILDKITE_TAG": "${BUILDKITE_TAG}"}
40 }"#,
41 );
42 }
43}