Skip to content

Commit 542e747

Browse files
sjoerdsimonsrefi64
authored andcommitted
Avoid generate an empty rules list for jobs
Gitlab doesn't like it if the rules array is empty; So avoid including it if no rules were given. This fixes gitlab not wanting to run a generated job when no `--rules` argument was passed to generate-monitor Signed-off-by: Sjoerd Simons <[email protected]>
1 parent 741d68f commit 542e747

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/pipeline.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ struct JobSpec {
3636
script: Vec<String>,
3737
after_script: Vec<String>,
3838
artifacts: ArtifactsSpec,
39-
rules: serde_yaml::Sequence,
39+
#[serde(skip_serializing_if = "Option::is_none")]
40+
rules: Option<serde_yaml::Sequence>,
4041
}
4142

4243
fn generate_command(command_name: String, args: &[(&str, String)]) -> String {
@@ -58,13 +59,12 @@ pub fn generate_monitor_pipeline(
5859
enabled_repos: &HashMap<RepoArch, CommitBuildInfo>,
5960
options: GeneratePipelineOptions,
6061
) -> Result<File> {
61-
let rules: serde_yaml::Sequence = options
62+
let rules: Option<serde_yaml::Sequence> = options
6263
.rules
6364
.as_deref()
6465
.map(serde_yaml::from_str)
6566
.transpose()
66-
.wrap_err("Failed to parse provided rules")?
67-
.unwrap_or_default();
67+
.wrap_err("Failed to parse provided rules")?;
6868

6969
let mut jobs = HashMap::new();
7070
for (RepoArch { repo, arch }, info) in enabled_repos {

0 commit comments

Comments
 (0)