{"record":{"id":"f7aeb1b0ccec5343","repo":"dbt-labs/dbt-core","slug":"no-brew-supported-targets-found-in-source-desc","errorCode":null,"errorMessage":"no brew-supported targets found in {source_desc} (need at least one of: aarch64-apple-darwin, x86_64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu)","messagePattern":"no brew-supported targets found in (.+?) \\(need at least one of: aarch64-apple-darwin, x86_64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu\\)","errorType":"validation","errorClass":"anyhow","httpStatus":null,"severity":"error","filePath":"crates/dbt-ci/src/homebrew/render.rs","lineNumber":75,"sourceCode":"        (None, Some(file)) => (\n            collect_tarballs_from_sha256sums(file, &args.tarball_prefix, &args.version)?,\n            format!(\"manifest {}\", file.display()),\n        ),\n        (None, None) | (Some(_), Some(_)) => {\n            unreachable!(\"clap should reject neither/both --tarballs-dir/--sha256sums\")\n        }\n    };\n    if tarballs.is_empty() {\n        bail!(\n            \"no `{prefix}{version}-*.tar.gz` tarballs found in {source_desc}\",\n            prefix = args.tarball_prefix,\n            version = args.version,\n        );\n    }\n\n    let platforms = resolve_platforms(&tarballs, &args.url_template, &args.version);\n    if platforms.is_empty() {\n        bail!(\n            \"no brew-supported targets found in {source_desc} (need at least one of: \\\n             aarch64-apple-darwin, x86_64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu)\",\n        );\n    }\n\n    // `install_as` defaults to the formula name — preserves the historic\n    // behavior where `bin.install \"X\"` is renamed to match the formula's\n    // filename when binary-name and formula-name differ.\n    let install_as = args\n        .install_as\n        .clone()\n        .unwrap_or_else(|| formula_name.clone());\n\n    let ctx = FormulaCtx {\n        class_name: pascal_case(&formula_name),\n        binary_name: args.binary_name.clone(),\n        install_as,\n        version: args.version.clone(),","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-ci/src/homebrew/render.rs#L57-L93","documentation":"After collecting tarballs, render.rs resolves which platforms they cover and requires at least one of the four brew-supported targets (aarch64-apple-darwin, x86_64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu). If resolve_platforms() matches none of the found tarballs against the URL template and version, run() bails. A Homebrew formula cannot be generated without at least one supported platform artifact.","triggerScenarios":"All tarballs found in the source correspond to targets outside the supported list (e.g. aarch64-unknown-linux-musl, windows targets, *-freebsd), or resolve_platforms fails to match the URL template/filename convention so no platform is extracted from otherwise valid artifacts.","commonSituations":"Release built only for musl static targets which Homebrew formulae don't reference; artifacts renamed to a convention resolve_platforms no longer recognizes (e.g. target triple missing from filename); publishing a formula for a Windows-only release; custom --url-template that no longer embeds the target triple the parser expects.","solutions":["Build and include release artifacts for at least one supported target: aarch64-apple-darwin, x86_64-apple-darwin, aarch64-unknown-linux-gnu, or x86_64-unknown-linux-gnu.","Ensure artifact filenames contain the exact target triple so resolve_platforms can map them.","If using a custom --url-template, confirm it preserves the target-triple segment the resolver parses.","Check the release build matrix in CI actually produces gnu/darwin targets and not only musl/windows."],"exampleFix":"// before (build matrix only produces musl)\nmatrix: { target: [x86_64-unknown-linux-musl] }\n\n// after\nmatrix:\n  target: [aarch64-apple-darwin, x86_64-apple-darwin, x86_64-unknown-linux-gnu]","handlingStrategy":"validation","validationCode":"const SUPPORTED: [&str; 4] = [\n    \"aarch64-apple-darwin\",\n    \"x86_64-apple-darwin\",\n    \"aarch64-unknown-linux-gnu\",\n    \"x86_64-unknown-linux-gnu\",\n];\nlet has_supported = tarballs.iter().any(|t| {\n    SUPPORTED.iter().any(|tgt| t.to_string_lossy().contains(tgt))\n});\nif !has_supported {\n    return Err(\"release artifacts contain none of the four brew-supported target triples\".into());\n}","typeGuard":null,"tryCatchPattern":"match render() {\n    Err(e) if e.to_string().contains(\"brew-supported targets\") => {\n        eprintln!(\"no darwin/gnu artifacts in release; fix build matrix to include at least one supported target\");\n    }\n    Err(e) => return Err(e),\n    Ok(v) => v,\n}","preventionTips":["Include all four supported targets in the release build matrix by default.","Verify uploaded artifact names embed the exact target triple.","Review the build matrix whenever target lists change.","Add a CI gate that scans release assets for supported triples before publishing the formula."],"tags":["artifacts","platforms","unsupported-platform","homebrew","ci"],"backgroundTag":"unsupported-platform","analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}