From f8e0688ce296ed262d6d4c63c676f62fb5e3e48b Mon Sep 17 00:00:00 2001 From: Amos Wenger Date: Tue, 29 Oct 2024 19:36:04 +0100 Subject: [PATCH] Add a cargo-dist-url-override key --- .github/workflows/release.yml | 5 +- Cargo.lock | 1 + cargo-dist-schema/src/lib.rs | 43 +- .../snapshots/cargo_dist_schema__emit.snap | 61 +- cargo-dist/Cargo.toml | 1 + cargo-dist/src/backend/ci/github.rs | 74 +- cargo-dist/src/backend/ci/mod.rs | 177 +- cargo-dist/src/config/v0.rs | 19 +- cargo-dist/src/config/v0_to_v1.rs | 2 + cargo-dist/src/config/v1/mod.rs | 15 + cargo-dist/src/init.rs | 9 + cargo-dist/templates/ci/github/release.yml.j2 | 9 +- cargo-dist/tests/integration-tests.rs | 31 + .../tests/snapshots/akaikatana_basic.snap | 50 +- .../tests/snapshots/akaikatana_musl.snap | 50 +- ...ikatana_one_alias_among_many_binaries.snap | 50 +- .../snapshots/akaikatana_two_bin_aliases.snap | 50 +- .../tests/snapshots/akaikatana_updaters.snap | 50 +- .../tests/snapshots/axolotlsay_abyss.snap | 50 +- .../snapshots/axolotlsay_abyss_only.snap | 50 +- .../tests/snapshots/axolotlsay_alias.snap | 50 +- ...axolotlsay_alias_ignores_missing_bins.snap | 50 +- .../tests/snapshots/axolotlsay_basic.snap | 55 +- .../snapshots/axolotlsay_basic_lies.snap | 50 +- .../axolotlsay_build_setup_steps.snap | 50 +- .../axolotlsay_checksum_blake2b.snap | 50 +- .../axolotlsay_checksum_blake2s.snap | 50 +- .../axolotlsay_checksum_sha3_256.snap | 50 +- .../axolotlsay_checksum_sha3_512.snap | 50 +- .../snapshots/axolotlsay_custom_formula.snap | 50 +- .../axolotlsay_custom_github_runners.snap | 50 +- .../axolotlsay_disable_source_tarball.snap | 50 +- .../tests/snapshots/axolotlsay_dispatch.snap | 50 +- .../snapshots/axolotlsay_dispatch_abyss.snap | 50 +- .../axolotlsay_dispatch_abyss_only.snap | 50 +- .../axolotlsay_dist_url_override.snap | 2456 +++++++++++++++++ .../snapshots/axolotlsay_edit_existing.snap | 50 +- .../axolotlsay_generic_workspace_basic.snap | 50 +- .../axolotlsay_homebrew_linux_only.snap | 14 +- ...axolotlsay_homebrew_macos_x86_64_only.snap | 14 +- .../axolotlsay_homebrew_packages.snap | 50 +- .../tests/snapshots/axolotlsay_musl.snap | 50 +- .../snapshots/axolotlsay_musl_no_gnu.snap | 38 +- .../axolotlsay_no_homebrew_publish.snap | 50 +- .../tests/snapshots/axolotlsay_no_locals.snap | 48 +- .../axolotlsay_no_locals_but_custom.snap | 48 +- .../snapshots/axolotlsay_several_aliases.snap | 50 +- .../axolotlsay_ssldotcom_windows_sign.snap | 50 +- ...xolotlsay_ssldotcom_windows_sign_prod.snap | 50 +- .../snapshots/axolotlsay_tag_namespace.snap | 50 +- .../tests/snapshots/axolotlsay_updaters.snap | 50 +- .../axolotlsay_user_global_build_job.snap | 50 +- .../snapshots/axolotlsay_user_host_job.snap | 50 +- .../axolotlsay_user_local_build_job.snap | 50 +- .../snapshots/axolotlsay_user_plan_job.snap | 50 +- .../axolotlsay_user_publish_job.snap | 50 +- .../snapshots/install_path_cargo_home.snap | 48 +- .../snapshots/install_path_env_no_subdir.snap | 48 +- .../snapshots/install_path_env_subdir.snap | 48 +- .../install_path_env_subdir_space.snap | 48 +- .../install_path_env_subdir_space_deeper.snap | 48 +- .../install_path_fallback_no_env_var_set.snap | 48 +- .../install_path_home_subdir_deeper.snap | 48 +- .../install_path_home_subdir_min.snap | 48 +- .../install_path_home_subdir_space.snap | 48 +- ...install_path_home_subdir_space_deeper.snap | 48 +- .../install_path_no_fallback_taken.snap | 48 +- cargo-dist/tests/snapshots/manifest.snap | 84 +- dist-workspace.toml | 2 +- 69 files changed, 4734 insertions(+), 800 deletions(-) create mode 100644 cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 81e8dd579..54626b903 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,7 +67,7 @@ jobs: # we specify bash to get pipefail; it guards against the `curl` command # failing. otherwise `sh` won't catch that `curl` returned non-0 shell: bash - run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.24.0-prerelease.2/cargo-dist-installer.sh | sh" + run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.24.1/cargo-dist-installer.sh | sh" - name: Cache dist uses: actions/upload-artifact@v4 with: @@ -122,7 +122,8 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + shell: ${{ matrix.install_dist.shell }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/Cargo.lock b/Cargo.lock index baba8eb75..51a49242f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -425,6 +425,7 @@ dependencies = [ "mach_object", "miette 7.2.0", "newline-converter", + "schemars", "semver", "serde", "serde_json", diff --git a/cargo-dist-schema/src/lib.rs b/cargo-dist-schema/src/lib.rs index 01781dadb..ffa1b20fe 100644 --- a/cargo-dist-schema/src/lib.rs +++ b/cargo-dist-schema/src/lib.rs @@ -306,8 +306,9 @@ pub struct GithubMatrixEntry { #[serde(skip_serializing_if = "Option::is_none")] pub runner: Option, /// Expression to execute to install dist - #[serde(skip_serializing_if = "Option::is_none")] - pub install_dist: Option, + pub install_dist: GhaRunStep, + /// Expression to execute to install cargo-auditable + pub install_cargo_auditable: GhaRunStep, /// Arguments to pass to dist #[serde(skip_serializing_if = "Option::is_none")] pub dist_args: Option, @@ -317,9 +318,41 @@ pub struct GithubMatrixEntry { /// what cache provider to use #[serde(skip_serializing_if = "Option::is_none")] pub cache_provider: Option, - /// Expression to execute to install cargo-auditable - #[serde(skip_serializing_if = "Option::is_none")] - pub install_cargo_auditable: Option, +} + +/// A GitHub Actions "run" step, either bash or powershell +#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)] +// this mirrors GHA's structure, see +// * +// * +#[serde(tag = "shell", content = "run")] +pub enum GhaRunStep { + /// see [`DashScript`] + #[serde(rename = "sh")] + Dash(DashScript), + /// see [`PowershellScript`] + #[serde(rename = "pwsh")] + Powershell(PowershellScript), +} + +impl From for GhaRunStep { + fn from(bash: DashScript) -> Self { + Self::Dash(bash) + } +} + +impl From for GhaRunStep { + fn from(powershell: PowershellScript) -> Self { + Self::Powershell(powershell) + } +} + +declare_strongly_typed_string! { + /// A bit of shell script (that can run with `/bin/sh`), ran on CI runners. Can be multi-line. + pub struct DashScript => &DashScriptRef; + + /// A bit of powershell script, ran on CI runners. Can be multi-line. + pub struct PowershellScript => &PowershellScriptRef; } /// Type of job to run on pull request diff --git a/cargo-dist-schema/src/snapshots/cargo_dist_schema__emit.snap b/cargo-dist-schema/src/snapshots/cargo_dist_schema__emit.snap index fa623838a..b7f5a4e46 100644 --- a/cargo-dist-schema/src/snapshots/cargo_dist_schema__emit.snap +++ b/cargo-dist-schema/src/snapshots/cargo_dist_schema__emit.snap @@ -694,6 +694,49 @@ snapshot_kind: text } } }, + "GhaRunStep": { + "description": "A GitHub Actions \"run\" step, either bash or powershell", + "oneOf": [ + { + "description": "see [`DashScript`]", + "type": "object", + "required": [ + "run", + "shell" + ], + "properties": { + "run": { + "type": "string" + }, + "shell": { + "type": "string", + "enum": [ + "sh" + ] + } + } + }, + { + "description": "see [`PowershellScript`]", + "type": "object", + "required": [ + "run", + "shell" + ], + "properties": { + "run": { + "type": "string" + }, + "shell": { + "type": "string", + "enum": [ + "pwsh" + ] + } + } + } + ] + }, "GithubCiInfo": { "description": "Github CI backend", "type": "object", @@ -773,6 +816,10 @@ snapshot_kind: text "GithubMatrixEntry": { "description": "Entry for a github matrix", "type": "object", + "required": [ + "install_cargo_auditable", + "install_dist" + ], "properties": { "cache_provider": { "description": "what cache provider to use", @@ -790,16 +837,18 @@ snapshot_kind: text }, "install_cargo_auditable": { "description": "Expression to execute to install cargo-auditable", - "type": [ - "string", - "null" + "allOf": [ + { + "$ref": "#/definitions/GhaRunStep" + } ] }, "install_dist": { "description": "Expression to execute to install dist", - "type": [ - "string", - "null" + "allOf": [ + { + "$ref": "#/definitions/GhaRunStep" + } ] }, "packages_install": { diff --git a/cargo-dist/Cargo.toml b/cargo-dist/Cargo.toml index 961b6a433..6c5bda6b3 100644 --- a/cargo-dist/Cargo.toml +++ b/cargo-dist/Cargo.toml @@ -72,6 +72,7 @@ lazy_static.workspace = true current_platform.workspace = true color-backtrace.workspace = true backtrace.workspace = true +schemars.workspace = true [dev-dependencies] insta.workspace = true diff --git a/cargo-dist/src/backend/ci/github.rs b/cargo-dist/src/backend/ci/github.rs index b3d12a14a..f9f51990b 100644 --- a/cargo-dist/src/backend/ci/github.rs +++ b/cargo-dist/src/backend/ci/github.rs @@ -8,7 +8,8 @@ use axoasset::{LocalAsset, SourceFile}; use axoprocess::Cmd; use camino::{Utf8Path, Utf8PathBuf}; use cargo_dist_schema::{ - GithubMatrix, GithubMatrixEntry, GithubRunner, GithubRunnerRef, TargetTriple, TargetTripleRef, + GhaRunStep, GithubMatrix, GithubMatrixEntry, GithubRunner, GithubRunnerRef, TargetTriple, + TargetTripleRef, }; use serde::{Deserialize, Serialize}; use tracing::warn; @@ -24,6 +25,10 @@ use crate::{ DistError, DistGraph, SortedMap, SortedSet, }; +use super::{ + CargoAuditableInstallStrategy, DistInstallSettings, DistInstallStrategy, InstallStrategy, +}; + #[cfg(not(windows))] const GITHUB_CI_DIR: &str = ".github/workflows/"; #[cfg(windows)] @@ -31,6 +36,8 @@ const GITHUB_CI_DIR: &str = r".github\workflows\"; const GITHUB_CI_FILE: &str = "release.yml"; /// Info about running dist in Github CI +/// +/// THESE FIELDS ARE LOAD-BEARING because they're used in the templates. #[derive(Debug, Serialize)] pub struct GithubCiInfo { /// Cached path to github CI workflows dir @@ -38,14 +45,10 @@ pub struct GithubCiInfo { pub github_ci_workflow_dir: Utf8PathBuf, /// Version of rust toolchain to install (deprecated) pub rust_version: Option, - /// expression to use for installing dist via shell script - pub install_dist_sh: String, - /// expression to use for installing dist via powershell script - pub install_dist_ps1: String, - /// expression to use for installing cargo-auditable via shell script - pub install_cargo_auditable_sh: String, - /// expression to use for installing cargo-auditable via powershell script - pub install_cargo_auditable_ps1: String, + /// How to install dist when "coordinating" (plan, global build, etc.) + pub dist_install_for_coordinator: GhaRunStep, + /// Our install strategy for dist itself + pub dist_install_strategy: DistInstallStrategy, /// Whether to fail-fast pub fail_fast: bool, /// Whether to cache builds @@ -223,11 +226,13 @@ impl GithubCiInfo { dependencies.append(&mut release.config.builds.system_dependencies.clone()); } - // Get the platform-specific installation methods - let install_dist_sh = super::install_dist_sh_for_version(dist_version); - let install_dist_ps1 = super::install_dist_ps1_for_version(dist_version); - let install_cargo_auditable_sh = super::install_cargo_auditable_sh_latest(); - let install_cargo_auditable_ps1 = super::install_cargo_auditable_ps1_latest(); + let dist_install_strategy = (DistInstallSettings { + version: dist_version, + url_override: dist.config.dist_url_override.as_deref(), + }) + .install_strategy(); + let cargo_auditable_install_strategy = CargoAuditableInstallStrategy; + let hosting_providers = dist .hosting .as_ref() @@ -255,8 +260,8 @@ impl GithubCiInfo { cache_provider: cache_provider_for_runner(global_runner), runner: Some(global_runner.to_owned()), dist_args: Some("--artifacts=global".into()), - install_dist: Some(install_dist_sh.clone()), - install_cargo_auditable: Some(install_cargo_auditable_sh.clone()), + install_dist: dist_install_strategy.dash(), + install_cargo_auditable: cargo_auditable_install_strategy.dash(), packages_install: None, }; @@ -311,13 +316,9 @@ impl GithubCiInfo { }; for (runner, targets) in local_runs { use std::fmt::Write; - let install_dist = - install_package_for_targets(&targets, &install_dist_sh, &install_dist_ps1); - let install_cargo_auditable = install_package_for_targets( - &targets, - &install_cargo_auditable_sh, - &install_cargo_auditable_ps1, - ); + let install_dist = dist_install_strategy.for_targets(&targets); + let install_cargo_auditable = cargo_auditable_install_strategy.for_targets(&targets); + let mut dist_args = String::from("--artifacts=local"); for target in &targets { write!(dist_args, " --target={target}").unwrap(); @@ -327,8 +328,8 @@ impl GithubCiInfo { cache_provider: cache_provider_for_runner(&runner), runner: Some(runner), dist_args: Some(dist_args), - install_dist: Some(install_dist.to_owned()), - install_cargo_auditable: Some(install_cargo_auditable.to_owned()), + install_dist: install_dist.to_owned(), + install_cargo_auditable: install_cargo_auditable.to_owned(), packages_install: package_install_for_targets(&targets, &dependencies), }); } @@ -351,10 +352,8 @@ impl GithubCiInfo { github_ci_workflow_dir, tag_namespace, rust_version, - install_dist_sh, - install_dist_ps1, - install_cargo_auditable_sh, - install_cargo_auditable_ps1, + dist_install_for_coordinator: dist_install_strategy.dash(), + dist_install_strategy, fail_fast, cache_builds, build_local_artifacts, @@ -638,23 +637,6 @@ fn github_runner_for_target( } } -/// Select the (dist-produced) installer approach for a given Github Runner -fn install_package_for_targets<'a>( - targets: &'a [&'a TargetTripleRef], - install_sh: &'a str, - install_ps1: &'a str, -) -> &'a str { - for target in targets { - if target.is_linux() || target.is_apple() { - return install_sh; - } else if target.is_windows() { - return install_ps1; - } - } - - unreachable!("internal error: unknown target triple!?") -} - fn brewfile_from(packages: &[String]) -> String { let brewfile_lines: Vec = packages .iter() diff --git a/cargo-dist/src/backend/ci/mod.rs b/cargo-dist/src/backend/ci/mod.rs index ede328a5e..2c16fa26e 100644 --- a/cargo-dist/src/backend/ci/mod.rs +++ b/cargo-dist/src/backend/ci/mod.rs @@ -1,6 +1,10 @@ //! Support for generating CI scripts for running dist +use cargo_dist_schema::{DashScript, GhaRunStep, PowershellScript, TargetTripleRef}; use semver::Version; +use serde::Serialize; + +use crate::config::v0::CargoDistUrlOverrideRef; use self::github::GithubCiInfo; @@ -21,66 +25,133 @@ pub struct CiInfo { pub github: Option, } -/// Get the command to invoke to install dist via sh script -fn install_dist_sh_for_version(version: &Version) -> String { - if let Some(git) = install_dist_git(version) { - return git; - } - let format = cargo_dist_schema::format_of_version(version); - let installer_name = if format.unsupported() { - // FIXME: we should probably do this check way higher up and produce a proper err... - panic!("requested dist v{version}, which is not supported by the this copy of dist ({SELF_DIST_VERSION})"); - } else if format.artifact_names_contain_versions() { - format!("cargo-dist-v{version}-installer.sh") - } else { - "cargo-dist-installer.sh".to_owned() - }; - - // FIXME: it would be nice if these values were somehow using all the machinery - // to compute these values for packages we build *BUT* it's messy and not that important - let installer_url = format!("{BASE_DIST_FETCH_URL}/v{version}/{installer_name}"); - format!("curl --proto '=https' --tlsv1.2 -LsSf {installer_url} | sh") +/// Gives us the full information re: the version of dist we're supposed +/// to install/run in CI +struct DistInstallSettings<'a> { + version: &'a Version, + url_override: Option<&'a CargoDistUrlOverrideRef>, } -/// Get the command to invoke to install dist via ps1 script -fn install_dist_ps1_for_version(version: &Version) -> String { - if let Some(git) = install_dist_git(version) { - return git; +/// Generates github steps to install a tool +pub trait InstallStrategy { + /// Return a sh/dash script + fn dash(&self) -> GhaRunStep; + + /// Return a powershell script + fn powershell(&self) -> GhaRunStep; + + /// Return the right install method for a given set of targets + fn for_targets<'a>(&self, targets: &'a [&'a TargetTripleRef]) -> GhaRunStep { + // FIXME: when doing cross-compilation, `host != runner`, and we should + // pick something that runs on the host. We need knowledge about "which + // platform is this GitHub runner" ahead of time to do that, though. + + for target in targets { + if target.is_linux() || target.is_apple() { + return self.dash(); + } else if target.is_windows() { + return self.powershell(); + } + } + panic!("unsupported target triple(s) {targets:?}"); } - let format = cargo_dist_schema::format_of_version(version); - let installer_name = if format.unsupported() { - // FIXME: we should probably do this check way higher up and produce a proper err... - panic!("requested dist v{version}, which is not supported by the this copy of dist ({SELF_DIST_VERSION})"); - } else if format.artifact_names_contain_versions() { - format!("cargo-dist-v{version}-installer.ps1") - } else { - "cargo-dist-installer.ps1".to_owned() - }; - - // FIXME: it would be nice if these values were somehow using all the machinery - // to compute these values for packages we build *BUT* it's messy and not that important - let installer_url = format!("{BASE_DIST_FETCH_URL}/v{version}/{installer_name}"); - format!(r#"powershell -c "irm {installer_url} | iex""#) } -/// Cute little hack for developing dist itself: if we see a version like "0.0.3-github-config" -/// then install from the main github repo with branch=config! -fn install_dist_git(version: &Version) -> Option { - version.pre.strip_prefix("github-").map(|branch| { - format!("cargo install --git https://github.com/axodotdev/cargo-dist/ --branch={branch} cargo-dist") - }) +/// The strategy used to install dist in CI +#[derive(Debug, Clone, Serialize)] +pub enum DistInstallStrategy { + /// Download an installer and run it + Installer { + /// the prefix of the installer url, e.g. + installer_url: String, + /// the installer name, without `.sh` or `.ps1` + installer_name: String, + }, + /// Run `cargo install --git` (slow!) + GitBranch { + /// the branch to install from — from + branch: String, + }, +} + +impl DistInstallSettings<'_> { + fn install_strategy(&self) -> DistInstallStrategy { + if let Some(branch) = self.version.pre.strip_prefix("github-") { + return DistInstallStrategy::GitBranch { + branch: branch.to_owned(), + }; + } + + if let Some(url) = self.url_override.as_ref() { + return DistInstallStrategy::Installer { + installer_url: url.as_str().to_owned(), + installer_name: "cargo-dist-installer".to_owned(), + }; + } + + let version = self.version; + let format = cargo_dist_schema::format_of_version(version); + let installer_name = if format.unsupported() { + // FIXME: we should probably do this check way higher up and produce a proper err... + panic!("requested dist v{version}, which is not supported by the this copy of dist ({SELF_DIST_VERSION})"); + } else if format.artifact_names_contain_versions() { + format!("cargo-dist-v{version}-installer") + } else { + "cargo-dist-installer".to_owned() + }; + + DistInstallStrategy::Installer { + // FIXME: it would be nice if these values were somehow using all the machinery + // to compute these values for packages we build *BUT* it's messy and not that important + installer_url: format!("{BASE_DIST_FETCH_URL}/v{version}"), + installer_name, + } + } } -/// Get the command to invoke to install cargo-auditable via sh script -fn install_cargo_auditable_sh_latest() -> String { - let installer_url = - format!("{BASE_CARGO_AUDITABLE_FETCH_LATEST_URL}/cargo-auditable-installer.sh"); - format!("curl --proto '=https' --tlsv1.2 -LsSf {installer_url} | sh") +impl InstallStrategy for DistInstallStrategy { + /// Returns a bit of sh/dash to install the requested version of dist + fn dash(&self) -> GhaRunStep { + DashScript::new(match self { + DistInstallStrategy::Installer { installer_url, installer_name } => format!( + "curl --proto '=https' --tlsv1.2 -LsSf {installer_url}/{installer_name}.sh | sh" + ), + DistInstallStrategy::GitBranch { branch } => format!( + "cargo install --git https://github.com/axodotdev/cargo-dist/ --branch={branch} cargo-dist" + ), + }).into() + } + + /// Returns a bit of powershell to install the requested version of dist + fn powershell(&self) -> GhaRunStep { + PowershellScript::new(match self { + DistInstallStrategy::Installer { installer_url, installer_name } => format!( + "irm {installer_url}/{installer_name}.ps1 | iex" + ), + DistInstallStrategy::GitBranch { branch } => format!( + "cargo install --git https://github.com/axodotdev/cargo-dist/ --branch={branch} cargo-dist" + ), + }).into() + } } -/// Get the command to invoke to install cargo-auditable via ps1 script -fn install_cargo_auditable_ps1_latest() -> String { - let installer_url = - format!("{BASE_CARGO_AUDITABLE_FETCH_LATEST_URL}/cargo-auditable-installer.ps1"); - format!(r#"powershell -c "irm {installer_url} | iex""#) +struct CargoAuditableInstallStrategy; + +impl InstallStrategy for CargoAuditableInstallStrategy { + /// Return a sh/dash script + fn dash(&self) -> GhaRunStep { + let installer_url = + format!("{BASE_CARGO_AUDITABLE_FETCH_LATEST_URL}/cargo-auditable-installer.sh"); + DashScript::new(format!( + "curl --proto '=https' --tlsv1.2 -LsSf {installer_url} | sh" + )) + .into() + } + + /// Return a powershell script + fn powershell(&self) -> GhaRunStep { + let installer_url = + format!("{BASE_CARGO_AUDITABLE_FETCH_LATEST_URL}/cargo-auditable-installer.ps1"); + PowershellScript::new(format!(r#"powershell -c "irm {installer_url} | iex""#)).into() + } } diff --git a/cargo-dist/src/config/v0.rs b/cargo-dist/src/config/v0.rs index 774ef0142..9297ae0ea 100644 --- a/cargo-dist/src/config/v0.rs +++ b/cargo-dist/src/config/v0.rs @@ -1,7 +1,7 @@ //! v0 config use camino::{Utf8Path, Utf8PathBuf}; -use cargo_dist_schema::GithubRunner; +use cargo_dist_schema::{declare_strongly_typed_string, GithubRunner}; use semver::Version; use serde::{Deserialize, Serialize}; use tracing::log::warn; @@ -17,6 +17,14 @@ pub struct GenericConfig { pub dist: Option, } +declare_strongly_typed_string! { + /// A URL to use to install `cargo-dist` (with the installer script). + /// This overwrites `cargo_dist_version` and expects the URL to have + /// a similar structure to `./target/distrib` after running `dist build` + /// on itself. + pub struct CargoDistUrlOverride => &CargoDistUrlOverrideRef; +} + /// Contents of METADATA_DIST in Cargo.toml files #[derive(Serialize, Deserialize, Debug, Default, Clone)] #[serde(rename_all = "kebab-case")] @@ -32,6 +40,10 @@ pub struct DistMetadata { #[serde(skip_serializing_if = "Option::is_none")] pub cargo_dist_version: Option, + /// See [`CargoDistUrlOverride`] + #[serde(skip_serializing_if = "Option::is_none")] + pub cargo_dist_url_override: Option, + /// (deprecated) The intended version of Rust/Cargo to build with (rustup toolchain syntax) /// /// When generating full tasks graphs (such as CI scripts) we will pick this version. @@ -458,6 +470,7 @@ impl DistMetadata { extra_artifacts, // The rest of these don't include relative paths cargo_dist_version: _, + cargo_dist_url_override: _, rust_toolchain_version: _, dist: _, ci: _, @@ -554,6 +567,7 @@ impl DistMetadata { // This is intentionally written awkwardly to make you update it let DistMetadata { cargo_dist_version, + cargo_dist_url_override, rust_toolchain_version, dist, ci, @@ -621,6 +635,9 @@ impl DistMetadata { if cargo_dist_version.is_some() { warn!("package.metadata.dist.cargo-dist-version is set, but this is only accepted in workspace.metadata (value is being ignored): {}", package_manifest_path); } + if cargo_dist_url_override.is_some() { + warn!("package.metadata.dist.cargo-dist-url-override is set, but this is only accepted in workspace.metadata (value is being ignored): {}", package_manifest_path); + } if rust_toolchain_version.is_some() { warn!("package.metadata.dist.rust-toolchain-version is set, but this is only accepted in workspace.metadata (value is being ignored): {}", package_manifest_path); } diff --git a/cargo-dist/src/config/v0_to_v1.rs b/cargo-dist/src/config/v0_to_v1.rs index beb2474b4..9bbc3aca4 100644 --- a/cargo-dist/src/config/v0_to_v1.rs +++ b/cargo-dist/src/config/v0_to_v1.rs @@ -23,6 +23,7 @@ impl DistMetadata { pub fn to_toml_layer(&self, is_global: bool) -> TomlLayer { let DistMetadata { cargo_dist_version, + cargo_dist_url_override, rust_toolchain_version, dist, ci, @@ -344,6 +345,7 @@ impl DistMetadata { TomlLayer { dist_version: cargo_dist_version, + dist_url_override: cargo_dist_url_override, dist, allow_dirty, targets, diff --git a/cargo-dist/src/config/v1/mod.rs b/cargo-dist/src/config/v1/mod.rs index 7158aaeff..9c5a8b968 100644 --- a/cargo-dist/src/config/v1/mod.rs +++ b/cargo-dist/src/config/v1/mod.rs @@ -114,6 +114,7 @@ pub mod publishers; use axoproject::{PackageIdx, WorkspaceGraph}; use semver::Version; +use v0::CargoDistUrlOverride; use super::*; use layer::*; @@ -161,6 +162,8 @@ pub fn app_config( pub struct WorkspaceConfig { /// The intended version of dist to build with. (normal Cargo SemVer syntax) pub dist_version: Option, + /// See [`CargoDistUrlOverride`] + pub dist_url_override: Option, /// Generate targets whose dist should avoid checking for up-to-dateness. pub allow_dirty: Vec, /// ci config @@ -181,6 +184,8 @@ pub struct WorkspaceConfig { pub struct WorkspaceConfigInheritable { /// The intended version of dist to build with. (normal Cargo SemVer syntax) pub dist_version: Option, + /// See [`CargoDistUrlOverride`] + pub dist_url_override: Option, /// Generate targets whose dist should avoid checking for up-to-dateness. pub allow_dirty: Vec, /// artifact config @@ -204,6 +209,7 @@ impl WorkspaceConfigInheritable { builds: BuildConfigInheritable::defaults_for_workspace(workspaces), installers: InstallerConfigInheritable::defaults_for_workspace(workspaces), dist_version: None, + dist_url_override: None, allow_dirty: vec![], } } @@ -216,6 +222,7 @@ impl WorkspaceConfigInheritable { builds, installers, dist_version, + dist_url_override, allow_dirty, } = self; WorkspaceConfig { @@ -225,6 +232,7 @@ impl WorkspaceConfigInheritable { builds: builds.apply_inheritance_for_workspace(workspaces), installers: installers.apply_inheritance_for_workspace(workspaces), dist_version, + dist_url_override, allow_dirty, } } @@ -241,6 +249,7 @@ impl ApplyLayer for WorkspaceConfigInheritable { ci, allow_dirty, dist_version, + dist_url_override, // app-scope only dist: _, targets: _, @@ -253,6 +262,7 @@ impl ApplyLayer for WorkspaceConfigInheritable { self.installers.apply_val_layer(installers); self.ci.apply_val_layer(ci); self.dist_version.apply_opt(dist_version); + self.dist_url_override.apply_opt(dist_url_override); self.allow_dirty.apply_val(allow_dirty); } } @@ -350,6 +360,7 @@ impl ApplyLayer for AppConfigInheritable { ci: _, allow_dirty: _, dist_version: _, + dist_url_override: _, }: Self::Layer, ) { self.artifacts.apply_val_layer(artifacts); @@ -377,6 +388,10 @@ pub struct TomlLayer { #[serde(skip_serializing_if = "Option::is_none")] pub dist_version: Option, + /// see [`CargoDistUrlOverride`] + #[serde(skip_serializing_if = "Option::is_none")] + pub dist_url_override: Option, + /// Whether the package should be distributed/built by dist /// /// This mainly exists to be set to `false` to make dist ignore the existence of this diff --git a/cargo-dist/src/init.rs b/cargo-dist/src/init.rs index 0ae72ef45..7824968b4 100644 --- a/cargo-dist/src/init.rs +++ b/cargo-dist/src/init.rs @@ -359,6 +359,7 @@ fn get_new_dist_metadata( DistMetadata { // If they init with this version we're gonna try to stick to it! cargo_dist_version: Some(std::env!("CARGO_PKG_VERSION").parse().unwrap()), + cargo_dist_url_override: None, // deprecated, default to not emitting it rust_toolchain_version: None, ci: None, @@ -841,6 +842,7 @@ fn apply_dist_to_metadata(metadata: &mut toml_edit::Item, meta: &DistMetadata) { // This is intentionally written awkwardly to make you update this let DistMetadata { cargo_dist_version, + cargo_dist_url_override, rust_toolchain_version, dist, ci, @@ -928,6 +930,13 @@ fn apply_dist_to_metadata(metadata: &mut toml_edit::Item, meta: &DistMetadata) { cargo_dist_version.as_ref().map(|v| v.to_string()), ); + apply_optional_value( + table, + "cargo-dist-url-override", + "# A URL to use to install `cargo-dist` (with the installer script)\n", + cargo_dist_url_override.as_ref().map(|v| v.to_string()), + ); + apply_optional_value( table, "rust-toolchain-version", diff --git a/cargo-dist/templates/ci/github/release.yml.j2 b/cargo-dist/templates/ci/github/release.yml.j2 index 2d48e1782..a14db9ae3 100644 --- a/cargo-dist/templates/ci/github/release.yml.j2 +++ b/cargo-dist/templates/ci/github/release.yml.j2 @@ -127,7 +127,7 @@ jobs: # we specify bash to get pipefail; it guards against the `curl` command # failing. otherwise `sh` won't catch that `curl` returned non-0 shell: bash - run: {{{ install_dist_sh }}} + run: {{{ dist_install_for_coordinator.run }}} - name: Cache dist uses: actions/upload-artifact@v4 with: @@ -284,7 +284,7 @@ jobs: cache-provider: ${{ matrix.cache_provider }} {{%- endif %}} - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 @@ -294,10 +294,7 @@ jobs: merge-multiple: true {{%- if need_cargo_auditable %}} - name: Install cargo-auditable - # we specify bash to get pipefail; it guards against the `curl` command - # failing. otherwise `sh` won't catch that `curl` return non-0 - run: ${{ matrix.install_cargo_auditable }} - shell: bash + run: ${{ matrix.install_cargo_auditable.run }} {{%- endif %}} - name: Install dependencies run: | diff --git a/cargo-dist/tests/integration-tests.rs b/cargo-dist/tests/integration-tests.rs index 302d7ec60..7af572d18 100644 --- a/cargo-dist/tests/integration-tests.rs +++ b/cargo-dist/tests/integration-tests.rs @@ -1878,3 +1878,34 @@ identifier = "dev.axo.axolotsay" Ok(()) }) } + +#[test] +fn axolotlsay_dist_url_override() -> Result<(), miette::Report> { + let test_name = _function_name!(); + AXOLOTLSAY.run_test(|ctx| { + let dist_version = ctx.tools.cargo_dist.version().unwrap(); + ctx.patch_cargo_toml(format!( + r#" +[workspace.metadata.dist] +cargo-dist-version = "{dist_version}" +cargo-dist-url-override = "https://dl.bearcove.cloud/dump/dist-cross" +installers = ["shell", "powershell"] +targets = ["x86_64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "aarch64-apple-darwin"] +ci = ["github"] +unix-archive = ".tar.gz" +windows-archive = ".tar.gz" + +"# + ))?; + + // Run generate to make sure stuff is up to date before running other commands + let ci_result = ctx.cargo_dist_generate(test_name)?; + let ci_snap = ci_result.check_all()?; + // Do usual build+plan checks + let main_result = ctx.cargo_dist_build_and_plan(test_name)?; + let main_snap = main_result.check_all(&ctx, ".cargo/bin/")?; + // snapshot all + main_snap.join(ci_snap).snap(); + Ok(()) + }) +} diff --git a/cargo-dist/tests/snapshots/akaikatana_basic.snap b/cargo-dist/tests/snapshots/akaikatana_basic.snap index 53e5a4eb2..ec2331298 100644 --- a/cargo-dist/tests/snapshots/akaikatana_basic.snap +++ b/cargo-dist/tests/snapshots/akaikatana_basic.snap @@ -2187,40 +2187,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -2356,7 +2380,7 @@ jobs: - name: Use rustup to set correct Rust version run: rustup update "1.67.1" --no-self-update && rustup default "1.67.1" - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/akaikatana_musl.snap b/cargo-dist/tests/snapshots/akaikatana_musl.snap index b8ffec802..7ec0da7ba 100644 --- a/cargo-dist/tests/snapshots/akaikatana_musl.snap +++ b/cargo-dist/tests/snapshots/akaikatana_musl.snap @@ -1588,41 +1588,65 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-musl" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-musl", "packages_install": "sudo apt-get update && sudo apt-get install musl-tools", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -1758,7 +1782,7 @@ jobs: - name: Use rustup to set correct Rust version run: rustup update "1.67.1" --no-self-update && rustup default "1.67.1" - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap b/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap index 8f814e64a..b8bf07459 100644 --- a/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap +++ b/cargo-dist/tests/snapshots/akaikatana_one_alias_among_many_binaries.snap @@ -2217,40 +2217,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -2386,7 +2410,7 @@ jobs: - name: Use rustup to set correct Rust version run: rustup update "1.67.1" --no-self-update && rustup default "1.67.1" - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap b/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap index ca07d27aa..f5650ff58 100644 --- a/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap +++ b/cargo-dist/tests/snapshots/akaikatana_two_bin_aliases.snap @@ -2243,40 +2243,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -2412,7 +2436,7 @@ jobs: - name: Use rustup to set correct Rust version run: rustup update "1.67.1" --no-self-update && rustup default "1.67.1" - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/akaikatana_updaters.snap b/cargo-dist/tests/snapshots/akaikatana_updaters.snap index 70ddf4918..0edaf7ba9 100644 --- a/cargo-dist/tests/snapshots/akaikatana_updaters.snap +++ b/cargo-dist/tests/snapshots/akaikatana_updaters.snap @@ -2227,40 +2227,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -2396,7 +2420,7 @@ jobs: - name: Use rustup to set correct Rust version run: rustup update "1.67.1" --no-self-update && rustup default "1.67.1" - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_abyss.snap b/cargo-dist/tests/snapshots/axolotlsay_abyss.snap index d67fb0a3e..f92f9363d 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_abyss.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_abyss.snap @@ -3759,40 +3759,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3929,7 +3953,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap b/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap index efc3242e1..bd7fe5340 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_abyss_only.snap @@ -3752,40 +3752,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3915,7 +3939,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_alias.snap b/cargo-dist/tests/snapshots/axolotlsay_alias.snap index 778242a43..90a29b518 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_alias.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_alias.snap @@ -3800,40 +3800,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3965,7 +3989,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap b/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap index 975a3acdd..2c4b193b3 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_alias_ignores_missing_bins.snap @@ -3802,40 +3802,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3967,7 +3991,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_basic.snap b/cargo-dist/tests/snapshots/axolotlsay_basic.snap index 16cc71b8d..94bd24c7d 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_basic.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_basic.snap @@ -3768,40 +3768,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3933,7 +3957,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 @@ -3942,10 +3966,7 @@ jobs: path: target/distrib/ merge-multiple: true - name: Install cargo-auditable - # we specify bash to get pipefail; it guards against the `curl` command - # failing. otherwise `sh` won't catch that `curl` return non-0 - run: ${{ matrix.install_cargo_auditable }} - shell: bash + run: ${{ matrix.install_cargo_auditable.run }} - name: Install dependencies run: | ${{ matrix.packages_install }} diff --git a/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap b/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap index ec7a56a04..598d25332 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_basic_lies.snap @@ -3871,40 +3871,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -4036,7 +4060,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap b/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap index d369c72c7..bf56c95f8 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_build_setup_steps.snap @@ -3768,40 +3768,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3950,7 +3974,7 @@ jobs: echo $HW shell: "bash" - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap index 20ed1bd13..6f096a088 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2b.snap @@ -1568,40 +1568,64 @@ download_binary_and_run_installer "$@" || exit 1 "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -1733,7 +1757,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap index 5e170f577..0caced01b 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_blake2s.snap @@ -1568,40 +1568,64 @@ download_binary_and_run_installer "$@" || exit 1 "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -1733,7 +1757,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap index a12be19a8..0dbf04ab9 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_256.snap @@ -1568,40 +1568,64 @@ download_binary_and_run_installer "$@" || exit 1 "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -1733,7 +1757,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap index 1c846d76c..c97f1a78e 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_checksum_sha3_512.snap @@ -1568,40 +1568,64 @@ download_binary_and_run_installer "$@" || exit 1 "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -1733,7 +1757,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_custom_formula.snap b/cargo-dist/tests/snapshots/axolotlsay_custom_formula.snap index 8511fb0e7..a0df4a09a 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_custom_formula.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_custom_formula.snap @@ -336,40 +336,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -491,7 +515,7 @@ jobs: key: ${{ join(matrix.targets, '-') }} cache-provider: ${{ matrix.cache_provider }} - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_custom_github_runners.snap b/cargo-dist/tests/snapshots/axolotlsay_custom_github_runners.snap index 73cb73c30..60571b53d 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_custom_github_runners.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_custom_github_runners.snap @@ -258,42 +258,66 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-unknown-linux-gnu" ], "runner": "buildjet-8vcpu-ubuntu-2204-arm", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-unknown-linux-gnu", - "cache_provider": "buildjet", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "buildjet" }, { "targets": [ "aarch64-unknown-linux-musl" ], "runner": "buildjet-8vcpu-ubuntu-2204-arm", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-unknown-linux-musl", "packages_install": "sudo apt-get update && sudo apt-get install musl-tools", - "cache_provider": "buildjet", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "buildjet" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "buildjet-8vcpu-ubuntu-2204", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "buildjet", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "buildjet" }, { "targets": [ "x86_64-unknown-linux-musl" ], "runner": "buildjet-8vcpu-ubuntu-2204", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-musl", "packages_install": "sudo apt-get update && sudo apt-get install musl-tools", - "cache_provider": "buildjet", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "buildjet" } ] }, @@ -425,7 +449,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap b/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap index 6a30e3868..a83844e01 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_disable_source_tarball.snap @@ -3756,40 +3756,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) axolotlsay-n "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3921,7 +3945,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_dispatch.snap b/cargo-dist/tests/snapshots/axolotlsay_dispatch.snap index e2ea92ff8..3f5550e1a 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_dispatch.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_dispatch.snap @@ -258,40 +258,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -427,7 +451,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss.snap b/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss.snap index 87f8acd62..7b0940bd6 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss.snap @@ -266,40 +266,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -437,7 +461,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss_only.snap b/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss_only.snap index fcf288688..3e8eb4da9 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss_only.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_dispatch_abyss_only.snap @@ -259,40 +259,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -426,7 +450,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap b/cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap new file mode 100644 index 000000000..d2cbaf48c --- /dev/null +++ b/cargo-dist/tests/snapshots/axolotlsay_dist_url_override.snap @@ -0,0 +1,2456 @@ +--- +source: cargo-dist/tests/gallery/dist/snapshot.rs +expression: self.payload +snapshot_kind: text +--- +================ axolotlsay-installer.sh ================ +#!/bin/sh +# shellcheck shell=dash +# +# Licensed under the MIT license +# , at your +# option. This file may not be copied, modified, or distributed +# except according to those terms. + +if [ "$KSH_VERSION" = 'Version JM 93t+ 2010-03-05' ]; then + # The version of ksh93 that ships with many illumos systems does not + # support the "local" extension. Print a message rather than fail in + # subtle ways later on: + echo 'this installer does not work with this ksh93 version; please try bash!' >&2 + exit 1 +fi + +set -u + +APP_NAME="axolotlsay" +APP_VERSION="0.2.2" +# Look for GitHub Enterprise-style base URL first +if [ -n "${AXOLOTLSAY_INSTALLER_GHE_BASE_URL:-}" ]; then + INSTALLER_BASE_URL="$AXOLOTLSAY_INSTALLER_GHE_BASE_URL" +else + INSTALLER_BASE_URL="${AXOLOTLSAY_INSTALLER_GITHUB_BASE_URL:-https://github.com}" +fi +if [ -n "${INSTALLER_DOWNLOAD_URL:-}" ]; then + ARTIFACT_DOWNLOAD_URL="$INSTALLER_DOWNLOAD_URL" +else + ARTIFACT_DOWNLOAD_URL="${INSTALLER_BASE_URL}/axodotdev/axolotlsay/releases/download/v0.2.2" +fi +PRINT_VERBOSE=${INSTALLER_PRINT_VERBOSE:-0} +PRINT_QUIET=${INSTALLER_PRINT_QUIET:-0} +if [ -n "${AXOLOTLSAY_NO_MODIFY_PATH:-}" ]; then + NO_MODIFY_PATH="$AXOLOTLSAY_NO_MODIFY_PATH" +else + NO_MODIFY_PATH=${INSTALLER_NO_MODIFY_PATH:-0} +fi +if [ "${AXOLOTLSAY_DISABLE_UPDATE:-0}" = "1" ]; then + INSTALL_UPDATER=0 +else + INSTALL_UPDATER=1 +fi +UNMANAGED_INSTALL="${AXOLOTLSAY_UNMANAGED_INSTALL:-}" +if [ -n "${UNMANAGED_INSTALL}" ]; then + NO_MODIFY_PATH=1 + INSTALL_UPDATER=0 +fi + +read -r RECEIPT <&2 + say_verbose " from $_url" 1>&2 + say_verbose " to $_file" 1>&2 + + ensure mkdir -p "$_dir" + + if ! downloader "$_url" "$_file"; then + say "failed to download $_url" + say "this may be a standard network error, but it may also indicate" + say "that $APP_NAME's release process is not working. When in doubt" + say "please feel free to open an issue!" + exit 1 + fi + + if [ -n "${_checksum_style:-}" ]; then + verify_checksum "$_file" "$_checksum_style" "$_checksum_value" + else + say "no checksums to verify" + fi + + # ...and then the updater, if it exists + if [ -n "$_updater_name" ] && [ "$INSTALL_UPDATER" = "1" ]; then + local _updater_url="$ARTIFACT_DOWNLOAD_URL/$_updater_name" + # This renames the artifact while doing the download, removing the + # target triple and leaving just the appname-update format + local _updater_file="$_dir/$APP_NAME-update" + + if ! downloader "$_updater_url" "$_updater_file"; then + say "failed to download $_updater_url" + say "this may be a standard network error, but it may also indicate" + say "that $APP_NAME's release process is not working. When in doubt" + say "please feel free to open an issue!" + exit 1 + fi + + # Add the updater to the list of binaries to install + _bins="$_bins $APP_NAME-update" + fi + + # unpack the archive + case "$_zip_ext" in + ".zip") + ensure unzip -q "$_file" -d "$_dir" + ;; + + ".tar."*) + ensure tar xf "$_file" --strip-components 1 -C "$_dir" + ;; + *) + err "unknown archive format: $_zip_ext" + ;; + esac + + install "$_dir" "$_bins" "$_libs" "$_staticlibs" "$_arch" "$@" + local _retval=$? + if [ "$_retval" != 0 ]; then + return "$_retval" + fi + + ignore rm -rf "$_dir" + + # Install the install receipt + if [ "$INSTALL_UPDATER" = "1" ]; then + if ! mkdir -p "$RECEIPT_HOME"; then + err "unable to create receipt directory at $RECEIPT_HOME" + else + echo "$RECEIPT" > "$RECEIPT_HOME/$APP_NAME-receipt.json" + # shellcheck disable=SC2320 + local _retval=$? + fi + else + local _retval=0 + fi + + return "$_retval" +} + +# Replaces $HOME with the variable name for display to the user, +# only if $HOME is defined. +replace_home() { + local _str="$1" + + if [ -n "${HOME:-}" ]; then + echo "$_str" | sed "s,$HOME,\$HOME," + else + echo "$_str" + fi +} + +json_binary_aliases() { + local _arch="$1" + + case "$_arch" in + "aarch64-apple-darwin") + echo '{}' + ;; + "x86_64-apple-darwin") + echo '{}' + ;; + "x86_64-pc-windows-gnu") + echo '{}' + ;; + "x86_64-unknown-linux-gnu") + echo '{}' + ;; + *) + echo '{}' + ;; + esac +} + +aliases_for_binary() { + local _bin="$1" + local _arch="$2" + + case "$_arch" in + "aarch64-apple-darwin") + case "$_bin" in + *) + echo "" + ;; + esac + ;; + "x86_64-apple-darwin") + case "$_bin" in + *) + echo "" + ;; + esac + ;; + "x86_64-pc-windows-gnu") + case "$_bin" in + *) + echo "" + ;; + esac + ;; + "x86_64-unknown-linux-gnu") + case "$_bin" in + *) + echo "" + ;; + esac + ;; + *) + echo "" + ;; + esac +} + +select_archive_for_arch() { + local _true_arch="$1" + local _archive + + # try each archive, checking runtime conditions like libc versions + # accepting the first one that matches, as it's the best match + case "$_true_arch" in + "aarch64-apple-darwin") + _archive="axolotlsay-aarch64-apple-darwin.tar.gz" + if [ -n "$_archive" ]; then + echo "$_archive" + return 0 + fi + _archive="axolotlsay-x86_64-apple-darwin.tar.gz" + if [ -n "$_archive" ]; then + echo "$_archive" + return 0 + fi + ;; + "aarch64-pc-windows-msvc") + _archive="axolotlsay-x86_64-pc-windows-msvc.tar.gz" + if [ -n "$_archive" ]; then + echo "$_archive" + return 0 + fi + ;; + "x86_64-apple-darwin") + _archive="axolotlsay-x86_64-apple-darwin.tar.gz" + if [ -n "$_archive" ]; then + echo "$_archive" + return 0 + fi + ;; + "x86_64-pc-windows-gnu") + _archive="axolotlsay-x86_64-pc-windows-msvc.tar.gz" + if [ -n "$_archive" ]; then + echo "$_archive" + return 0 + fi + ;; + "x86_64-pc-windows-msvc") + _archive="axolotlsay-x86_64-pc-windows-msvc.tar.gz" + if [ -n "$_archive" ]; then + echo "$_archive" + return 0 + fi + ;; + "x86_64-unknown-linux-gnu") + _archive="axolotlsay-x86_64-unknown-linux-gnu.tar.gz" + if ! check_glibc "2" "31"; then + _archive="" + fi + if [ -n "$_archive" ]; then + echo "$_archive" + return 0 + fi + ;; + *) + err "there isn't a download for your platform $_true_arch" + ;; + esac + err "no compatible downloads were found for your platform $_true_arch" +} + +check_glibc() { + local _min_glibc_major="$1" + local _min_glibc_series="$2" + + # Parsing version out from line 1 like: + # ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35 + _local_glibc="$(ldd --version | awk -F' ' '{ if (FNR<=1) print $NF }')" + + if [ "$(echo "${_local_glibc}" | awk -F. '{ print $1 }')" = "$_min_glibc_major" ] && [ "$(echo "${_local_glibc}" | awk -F. '{ print $2 }')" -ge "$_min_glibc_series" ]; then + return 0 + else + say "System glibc version (\`${_local_glibc}') is too old; checking alternatives" >&2 + return 1 + fi +} + +# See discussion of late-bound vs early-bound for why we use single-quotes with env vars +# shellcheck disable=SC2016 +install() { + # This code needs to both compute certain paths for itself to write to, and + # also write them to shell/rc files so that they can look them up to e.g. + # add them to PATH. This requires an active distinction between paths + # and expressions that can compute them. + # + # The distinction lies in when we want env-vars to be evaluated. For instance + # if we determine that we want to install to $HOME/.myapp, which do we add + # to e.g. $HOME/.profile: + # + # * early-bound: export PATH="/home/myuser/.myapp:$PATH" + # * late-bound: export PATH="$HOME/.myapp:$PATH" + # + # In this case most people would prefer the late-bound version, but in other + # cases the early-bound version might be a better idea. In particular when using + # other env-vars than $HOME, they are more likely to be only set temporarily + # for the duration of this install script, so it's more advisable to erase their + # existence with early-bounding. + # + # This distinction is handled by "double-quotes" (early) vs 'single-quotes' (late). + # + # However if we detect that "$SOME_VAR/..." is a subdir of $HOME, we try to rewrite + # it to be '$HOME/...' to get the best of both worlds. + # + # This script has a few different variants, the most complex one being the + # CARGO_HOME version which attempts to install things to Cargo's bin dir, + # potentially setting up a minimal version if the user hasn't ever installed Cargo. + # + # In this case we need to: + # + # * Install to $HOME/.cargo/bin/ + # * Create a shell script at $HOME/.cargo/env that: + # * Checks if $HOME/.cargo/bin/ is on PATH + # * and if not prepends it to PATH + # * Edits $HOME/.profile to run $HOME/.cargo/env (if the line doesn't exist) + # + # To do this we need these 4 values: + + # The actual path we're going to install to + local _install_dir + # The directory C dynamic/static libraries install to + local _lib_install_dir + # The install prefix we write to the receipt. + # For organized install methods like CargoHome, which have + # subdirectories, this is the root without `/bin`. For other + # methods, this is the same as `_install_dir`. + local _receipt_install_dir + # Path to the an shell script that adds install_dir to PATH + local _env_script_path + # Potentially-late-bound version of install_dir to write env_script + local _install_dir_expr + # Potentially-late-bound version of env_script_path to write to rcfiles like $HOME/.profile + local _env_script_path_expr + # Forces the install to occur at this path, not the default + local _force_install_dir + # Which install layout to use - "flat" or "hierarchical" + local _install_layout="unspecified" + + # Check the newer app-specific variable before falling back + # to the older generic one + if [ -n "${AXOLOTLSAY_INSTALL_DIR:-}" ]; then + _force_install_dir="$AXOLOTLSAY_INSTALL_DIR" + _install_layout="cargo-home" + elif [ -n "${CARGO_DIST_FORCE_INSTALL_DIR:-}" ]; then + _force_install_dir="$CARGO_DIST_FORCE_INSTALL_DIR" + _install_layout="cargo-home" + elif [ -n "$UNMANAGED_INSTALL" ]; then + _force_install_dir="$UNMANAGED_INSTALL" + _install_layout="flat" + fi + + # Before actually consulting the configured install strategy, see + # if we're overriding it. + if [ -n "${_force_install_dir:-}" ]; then + case "$_install_layout" in + "hierarchical") + _install_dir="$_force_install_dir/bin" + _lib_install_dir="$_force_install_dir/lib" + _receipt_install_dir="$_force_install_dir" + _env_script_path="$_force_install_dir/env" + _install_dir_expr="$(replace_home "$_force_install_dir/bin")" + _env_script_path_expr="$(replace_home "$_force_install_dir/env")" + ;; + "cargo-home") + _install_dir="$_force_install_dir/bin" + _lib_install_dir="$_force_install_dir/bin" + _receipt_install_dir="$_force_install_dir" + _env_script_path="$_force_install_dir/env" + _install_dir_expr="$(replace_home "$_force_install_dir/bin")" + _env_script_path_expr="$(replace_home "$_force_install_dir/env")" + ;; + "flat") + _install_dir="$_force_install_dir" + _lib_install_dir="$_force_install_dir" + _receipt_install_dir="$_install_dir" + _env_script_path="$_force_install_dir/env" + _install_dir_expr="$(replace_home "$_force_install_dir")" + _env_script_path_expr="$(replace_home "$_force_install_dir/env")" + ;; + *) + err "Unrecognized install layout: $_install_layout" + ;; + esac + fi + if [ -z "${_install_dir:-}" ]; then + _install_layout="cargo-home" + # first try $CARGO_HOME, then fallback to $HOME/.cargo + if [ -n "${CARGO_HOME:-}" ]; then + _receipt_install_dir="$CARGO_HOME" + _install_dir="$CARGO_HOME/bin" + _lib_install_dir="$CARGO_HOME/bin" + _env_script_path="$CARGO_HOME/env" + # Initially make this early-bound to erase the potentially-temporary env-var + _install_dir_expr="$_install_dir" + _env_script_path_expr="$_env_script_path" + # If CARGO_HOME was set but it ended up being the default $HOME-based path, + # then keep things late-bound. Otherwise bake the value for safety. + # This is what rustup does, and accurately reproducing it is useful. + if [ -n "${HOME:-}" ]; then + if [ "$HOME/.cargo/bin" = "$_install_dir" ]; then + _install_dir_expr='$HOME/.cargo/bin' + _env_script_path_expr='$HOME/.cargo/env' + fi + fi + elif [ -n "${HOME:-}" ]; then + _receipt_install_dir="$HOME/.cargo" + _install_dir="$HOME/.cargo/bin" + _lib_install_dir="$HOME/.cargo/bin" + _env_script_path="$HOME/.cargo/env" + _install_dir_expr='$HOME/.cargo/bin' + _env_script_path_expr='$HOME/.cargo/env' + fi + fi + + if [ -z "$_install_dir_expr" ]; then + err "could not find a valid path to install to!" + fi + + # Identical to the sh version, just with a .fish file extension + # We place it down here to wait until it's been assigned in every + # path. + _fish_env_script_path="${_env_script_path}.fish" + _fish_env_script_path_expr="${_env_script_path_expr}.fish" + + # Replace the temporary cargo home with the calculated one + RECEIPT=$(echo "$RECEIPT" | sed "s,AXO_INSTALL_PREFIX,$_receipt_install_dir,") + # Also replace the aliases with the arch-specific one + RECEIPT=$(echo "$RECEIPT" | sed "s'\"binary_aliases\":{}'\"binary_aliases\":$(json_binary_aliases "$_arch")'") + # And replace the install layout + RECEIPT=$(echo "$RECEIPT" | sed "s'\"install_layout\":\"unspecified\"'\"install_layout\":\"$_install_layout\"'") + if [ "$NO_MODIFY_PATH" = "1" ]; then + RECEIPT=$(echo "$RECEIPT" | sed "s'\"modify_path\":true'\"modify_path\":false'") + fi + + say "installing to $_install_dir" + ensure mkdir -p "$_install_dir" + ensure mkdir -p "$_lib_install_dir" + + # copy all the binaries to the install dir + local _src_dir="$1" + local _bins="$2" + local _libs="$3" + local _staticlibs="$4" + local _arch="$5" + for _bin_name in $_bins; do + local _bin="$_src_dir/$_bin_name" + ensure mv "$_bin" "$_install_dir" + # unzip seems to need this chmod + ensure chmod +x "$_install_dir/$_bin_name" + for _dest in $(aliases_for_binary "$_bin_name" "$_arch"); do + ln -sf "$_install_dir/$_bin_name" "$_install_dir/$_dest" + done + say " $_bin_name" + done + # Like the above, but no aliases + for _lib_name in $_libs; do + local _lib="$_src_dir/$_lib_name" + ensure mv "$_lib" "$_lib_install_dir" + # unzip seems to need this chmod + ensure chmod +x "$_lib_install_dir/$_lib_name" + say " $_lib_name" + done + for _lib_name in $_staticlibs; do + local _lib="$_src_dir/$_lib_name" + ensure mv "$_lib" "$_lib_install_dir" + # unzip seems to need this chmod + ensure chmod +x "$_lib_install_dir/$_lib_name" + say " $_lib_name" + done + + say "everything's installed!" + + # Avoid modifying the users PATH if they are managing their PATH manually + case :$PATH: + in *:$_install_dir:*) NO_MODIFY_PATH=1 ;; + *) ;; + esac + + if [ "0" = "$NO_MODIFY_PATH" ]; then + add_install_dir_to_ci_path "$_install_dir" + add_install_dir_to_path "$_install_dir_expr" "$_env_script_path" "$_env_script_path_expr" ".profile" "sh" + exit1=$? + shotgun_install_dir_to_path "$_install_dir_expr" "$_env_script_path" "$_env_script_path_expr" ".profile .bashrc .bash_profile .bash_login" "sh" + exit2=$? + add_install_dir_to_path "$_install_dir_expr" "$_env_script_path" "$_env_script_path_expr" ".zshrc .zshenv" "sh" + exit3=$? + # This path may not exist by default + ensure mkdir -p "$HOME/.config/fish/conf.d" + exit4=$? + add_install_dir_to_path "$_install_dir_expr" "$_fish_env_script_path" "$_fish_env_script_path_expr" ".config/fish/conf.d/$APP_NAME.env.fish" "fish" + exit5=$? + + if [ "${exit1:-0}" = 1 ] || [ "${exit2:-0}" = 1 ] || [ "${exit3:-0}" = 1 ] || [ "${exit4:-0}" = 1 ] || [ "${exit5:-0}" = 1 ]; then + say "" + say "To add $_install_dir_expr to your PATH, either restart your shell or run:" + say "" + say " source $_env_script_path_expr (sh, bash, zsh)" + say " source $_fish_env_script_path_expr (fish)" + fi + fi +} + +print_home_for_script() { + local script="$1" + + local _home + case "$script" in + # zsh has a special ZDOTDIR directory, which if set + # should be considered instead of $HOME + .zsh*) + if [ -n "${ZDOTDIR:-}" ]; then + _home="$ZDOTDIR" + else + _home="$HOME" + fi + ;; + *) + _home="$HOME" + ;; + esac + + echo "$_home" +} + +add_install_dir_to_ci_path() { + # Attempt to do CI-specific rituals to get the install-dir on PATH faster + local _install_dir="$1" + + # If GITHUB_PATH is present, then write install_dir to the file it refs. + # After each GitHub Action, the contents will be added to PATH. + # So if you put a curl | sh for this script in its own "run" step, + # the next step will have this dir on PATH. + # + # Note that GITHUB_PATH will not resolve any variables, so we in fact + # want to write install_dir and not install_dir_expr + if [ -n "${GITHUB_PATH:-}" ]; then + ensure echo "$_install_dir" >> "$GITHUB_PATH" + fi +} + +add_install_dir_to_path() { + # Edit rcfiles ($HOME/.profile) to add install_dir to $PATH + # + # We do this slightly indirectly by creating an "env" shell script which checks if install_dir + # is on $PATH already, and prepends it if not. The actual line we then add to rcfiles + # is to just source that script. This allows us to blast it into lots of different rcfiles and + # have it run multiple times without causing problems. It's also specifically compatible + # with the system rustup uses, so that we don't conflict with it. + local _install_dir_expr="$1" + local _env_script_path="$2" + local _env_script_path_expr="$3" + local _rcfiles="$4" + local _shell="$5" + + if [ -n "${HOME:-}" ]; then + local _target + local _home + + # Find the first file in the array that exists and choose + # that as our target to write to + for _rcfile_relative in $_rcfiles; do + _home="$(print_home_for_script "$_rcfile_relative")" + local _rcfile="$_home/$_rcfile_relative" + + if [ -f "$_rcfile" ]; then + _target="$_rcfile" + break + fi + done + + # If we didn't find anything, pick the first entry in the + # list as the default to create and write to + if [ -z "${_target:-}" ]; then + local _rcfile_relative + _rcfile_relative="$(echo "$_rcfiles" | awk '{ print $1 }')" + _home="$(print_home_for_script "$_rcfile_relative")" + _target="$_home/$_rcfile_relative" + fi + + # `source x` is an alias for `. x`, and the latter is more portable/actually-posix. + # This apparently comes up a lot on freebsd. It's easy enough to always add + # the more robust line to rcfiles, but when telling the user to apply the change + # to their current shell ". x" is pretty easy to misread/miscopy, so we use the + # prettier "source x" line there. Hopefully people with Weird Shells are aware + # this is a thing and know to tweak it (or just restart their shell). + local _robust_line=". \"$_env_script_path_expr\"" + local _pretty_line="source \"$_env_script_path_expr\"" + + # Add the env script if it doesn't already exist + if [ ! -f "$_env_script_path" ]; then + say_verbose "creating $_env_script_path" + if [ "$_shell" = "sh" ]; then + write_env_script_sh "$_install_dir_expr" "$_env_script_path" + else + write_env_script_fish "$_install_dir_expr" "$_env_script_path" + fi + else + say_verbose "$_env_script_path already exists" + fi + + # Check if the line is already in the rcfile + # grep: 0 if matched, 1 if no match, and 2 if an error occurred + # + # Ideally we could use quiet grep (-q), but that makes "match" and "error" + # have the same behaviour, when we want "no match" and "error" to be the same + # (on error we want to create the file, which >> conveniently does) + # + # We search for both kinds of line here just to do the right thing in more cases. + if ! grep -F "$_robust_line" "$_target" > /dev/null 2>/dev/null && \ + ! grep -F "$_pretty_line" "$_target" > /dev/null 2>/dev/null + then + # If the script now exists, add the line to source it to the rcfile + # (This will also create the rcfile if it doesn't exist) + if [ -f "$_env_script_path" ]; then + local _line + # Fish has deprecated `.` as an alias for `source` and + # it will be removed in a later version. + # https://fishshell.com/docs/current/cmds/source.html + # By contrast, `.` is the traditional syntax in sh and + # `source` isn't always supported in all circumstances. + if [ "$_shell" = "fish" ]; then + _line="$_pretty_line" + else + _line="$_robust_line" + fi + say_verbose "adding $_line to $_target" + # prepend an extra newline in case the user's file is missing a trailing one + ensure echo "" >> "$_target" + ensure echo "$_line" >> "$_target" + return 1 + fi + else + say_verbose "$_install_dir already on PATH" + fi + fi +} + +shotgun_install_dir_to_path() { + # Edit rcfiles ($HOME/.profile) to add install_dir to $PATH + # (Shotgun edition - write to all provided files that exist rather than just the first) + local _install_dir_expr="$1" + local _env_script_path="$2" + local _env_script_path_expr="$3" + local _rcfiles="$4" + local _shell="$5" + + if [ -n "${HOME:-}" ]; then + local _found=false + local _home + + for _rcfile_relative in $_rcfiles; do + _home="$(print_home_for_script "$_rcfile_relative")" + local _rcfile_abs="$_home/$_rcfile_relative" + + if [ -f "$_rcfile_abs" ]; then + _found=true + add_install_dir_to_path "$_install_dir_expr" "$_env_script_path" "$_env_script_path_expr" "$_rcfile_relative" "$_shell" + fi + done + + # Fall through to previous "create + write to first file in list" behavior + if [ "$_found" = false ]; then + add_install_dir_to_path "$_install_dir_expr" "$_env_script_path" "$_env_script_path_expr" "$_rcfiles" "$_shell" + fi + fi +} + +write_env_script_sh() { + # write this env script to the given path (this cat/EOF stuff is a "heredoc" string) + local _install_dir_expr="$1" + local _env_script_path="$2" + ensure cat < "$_env_script_path" +#!/bin/sh +# add binaries to PATH if they aren't added yet +# affix colons on either side of \$PATH to simplify matching +case ":\${PATH}:" in + *:"$_install_dir_expr":*) + ;; + *) + # Prepending path in case a system-installed binary needs to be overridden + export PATH="$_install_dir_expr:\$PATH" + ;; +esac +EOF +} + +write_env_script_fish() { + # write this env script to the given path (this cat/EOF stuff is a "heredoc" string) + local _install_dir_expr="$1" + local _env_script_path="$2" + ensure cat < "$_env_script_path" +if not contains "$_install_dir_expr" \$PATH + # Prepending path in case a system-installed binary needs to be overridden + set -x PATH "$_install_dir_expr" \$PATH +end +EOF +} + +check_proc() { + # Check for /proc by looking for the /proc/self/exe link + # This is only run on Linux + if ! test -L /proc/self/exe ; then + err "fatal: Unable to find /proc/self/exe. Is /proc mounted? Installation cannot proceed without /proc." + fi +} + +get_bitness() { + need_cmd head + # Architecture detection without dependencies beyond coreutils. + # ELF files start out "\x7fELF", and the following byte is + # 0x01 for 32-bit and + # 0x02 for 64-bit. + # The printf builtin on some shells like dash only supports octal + # escape sequences, so we use those. + local _current_exe_head + _current_exe_head=$(head -c 5 /proc/self/exe ) + if [ "$_current_exe_head" = "$(printf '\177ELF\001')" ]; then + echo 32 + elif [ "$_current_exe_head" = "$(printf '\177ELF\002')" ]; then + echo 64 + else + err "unknown platform bitness" + fi +} + +is_host_amd64_elf() { + need_cmd head + need_cmd tail + # ELF e_machine detection without dependencies beyond coreutils. + # Two-byte field at offset 0x12 indicates the CPU, + # but we're interested in it being 0x3E to indicate amd64, or not that. + local _current_exe_machine + _current_exe_machine=$(head -c 19 /proc/self/exe | tail -c 1) + [ "$_current_exe_machine" = "$(printf '\076')" ] +} + +get_endianness() { + local cputype=$1 + local suffix_eb=$2 + local suffix_el=$3 + + # detect endianness without od/hexdump, like get_bitness() does. + need_cmd head + need_cmd tail + + local _current_exe_endianness + _current_exe_endianness="$(head -c 6 /proc/self/exe | tail -c 1)" + if [ "$_current_exe_endianness" = "$(printf '\001')" ]; then + echo "${cputype}${suffix_el}" + elif [ "$_current_exe_endianness" = "$(printf '\002')" ]; then + echo "${cputype}${suffix_eb}" + else + err "unknown platform endianness" + fi +} + +get_architecture() { + local _ostype + local _cputype + _ostype="$(uname -s)" + _cputype="$(uname -m)" + local _clibtype="gnu" + local _local_glibc + + if [ "$_ostype" = Linux ]; then + if [ "$(uname -o)" = Android ]; then + _ostype=Android + fi + if ldd --version 2>&1 | grep -q 'musl'; then + _clibtype="musl-dynamic" + else + # Assume all other linuxes are glibc (even if wrong, static libc fallback will apply) + _clibtype="gnu" + fi + fi + + if [ "$_ostype" = Darwin ] && [ "$_cputype" = i386 ]; then + # Darwin `uname -m` lies + if sysctl hw.optional.x86_64 | grep -q ': 1'; then + _cputype=x86_64 + fi + fi + + if [ "$_ostype" = Darwin ] && [ "$_cputype" = x86_64 ]; then + # Rosetta on aarch64 + if [ "$(sysctl -n hw.optional.arm64 2>/dev/null)" = "1" ]; then + _cputype=aarch64 + fi + fi + + if [ "$_ostype" = SunOS ]; then + # Both Solaris and illumos presently announce as "SunOS" in "uname -s" + # so use "uname -o" to disambiguate. We use the full path to the + # system uname in case the user has coreutils uname first in PATH, + # which has historically sometimes printed the wrong value here. + if [ "$(/usr/bin/uname -o)" = illumos ]; then + _ostype=illumos + fi + + # illumos systems have multi-arch userlands, and "uname -m" reports the + # machine hardware name; e.g., "i86pc" on both 32- and 64-bit x86 + # systems. Check for the native (widest) instruction set on the + # running kernel: + if [ "$_cputype" = i86pc ]; then + _cputype="$(isainfo -n)" + fi + fi + + case "$_ostype" in + + Android) + _ostype=linux-android + ;; + + Linux) + check_proc + _ostype=unknown-linux-$_clibtype + _bitness=$(get_bitness) + ;; + + FreeBSD) + _ostype=unknown-freebsd + ;; + + NetBSD) + _ostype=unknown-netbsd + ;; + + DragonFly) + _ostype=unknown-dragonfly + ;; + + Darwin) + _ostype=apple-darwin + ;; + + illumos) + _ostype=unknown-illumos + ;; + + MINGW* | MSYS* | CYGWIN* | Windows_NT) + _ostype=pc-windows-gnu + ;; + + *) + err "unrecognized OS type: $_ostype" + ;; + + esac + + case "$_cputype" in + + i386 | i486 | i686 | i786 | x86) + _cputype=i686 + ;; + + xscale | arm) + _cputype=arm + if [ "$_ostype" = "linux-android" ]; then + _ostype=linux-androideabi + fi + ;; + + armv6l) + _cputype=arm + if [ "$_ostype" = "linux-android" ]; then + _ostype=linux-androideabi + else + _ostype="${_ostype}eabihf" + fi + ;; + + armv7l | armv8l) + _cputype=armv7 + if [ "$_ostype" = "linux-android" ]; then + _ostype=linux-androideabi + else + _ostype="${_ostype}eabihf" + fi + ;; + + aarch64 | arm64) + _cputype=aarch64 + ;; + + x86_64 | x86-64 | x64 | amd64) + _cputype=x86_64 + ;; + + mips) + _cputype=$(get_endianness mips '' el) + ;; + + mips64) + if [ "$_bitness" -eq 64 ]; then + # only n64 ABI is supported for now + _ostype="${_ostype}abi64" + _cputype=$(get_endianness mips64 '' el) + fi + ;; + + ppc) + _cputype=powerpc + ;; + + ppc64) + _cputype=powerpc64 + ;; + + ppc64le) + _cputype=powerpc64le + ;; + + s390x) + _cputype=s390x + ;; + riscv64) + _cputype=riscv64gc + ;; + loongarch64) + _cputype=loongarch64 + ;; + *) + err "unknown CPU type: $_cputype" + + esac + + # Detect 64-bit linux with 32-bit userland + if [ "${_ostype}" = unknown-linux-gnu ] && [ "${_bitness}" -eq 32 ]; then + case $_cputype in + x86_64) + # 32-bit executable for amd64 = x32 + if is_host_amd64_elf; then { + err "x32 linux unsupported" + }; else + _cputype=i686 + fi + ;; + mips64) + _cputype=$(get_endianness mips '' el) + ;; + powerpc64) + _cputype=powerpc + ;; + aarch64) + _cputype=armv7 + if [ "$_ostype" = "linux-android" ]; then + _ostype=linux-androideabi + else + _ostype="${_ostype}eabihf" + fi + ;; + riscv64gc) + err "riscv64 with 32-bit userland unsupported" + ;; + esac + fi + + # treat armv7 systems without neon as plain arm + if [ "$_ostype" = "unknown-linux-gnueabihf" ] && [ "$_cputype" = armv7 ]; then + if ensure grep '^Features' /proc/cpuinfo | grep -q -v neon; then + # At least one processor does not have NEON. + _cputype=arm + fi + fi + + _arch="${_cputype}-${_ostype}" + + RETVAL="$_arch" +} + +say() { + if [ "0" = "$PRINT_QUIET" ]; then + echo "$1" + fi +} + +say_verbose() { + if [ "1" = "$PRINT_VERBOSE" ]; then + echo "$1" + fi +} + +err() { + if [ "0" = "$PRINT_QUIET" ]; then + local red + local reset + red=$(tput setaf 1 2>/dev/null || echo '') + reset=$(tput sgr0 2>/dev/null || echo '') + say "${red}ERROR${reset}: $1" >&2 + fi + exit 1 +} + +need_cmd() { + if ! check_cmd "$1" + then err "need '$1' (command not found)" + fi +} + +check_cmd() { + command -v "$1" > /dev/null 2>&1 + return $? +} + +assert_nz() { + if [ -z "$1" ]; then err "assert_nz $2"; fi +} + +# Run a command that should never fail. If the command fails execution +# will immediately terminate with an error showing the failing +# command. +ensure() { + if ! "$@"; then err "command failed: $*"; fi +} + +# This is just for indicating that commands' results are being +# intentionally ignored. Usually, because it's being executed +# as part of error handling. +ignore() { + "$@" +} + +# This wraps curl or wget. Try curl first, if not installed, +# use wget instead. +downloader() { + if check_cmd curl + then _dld=curl + elif check_cmd wget + then _dld=wget + else _dld='curl or wget' # to be used in error message of need_cmd + fi + + if [ "$1" = --check ] + then need_cmd "$_dld" + elif [ "$_dld" = curl ] + then curl -sSfL "$1" -o "$2" + elif [ "$_dld" = wget ] + then wget "$1" -O "$2" + else err "Unknown downloader" # should not reach here + fi +} + +verify_checksum() { + local _file="$1" + local _checksum_style="$2" + local _checksum_value="$3" + local _calculated_checksum + + if [ -z "$_checksum_value" ]; then + return 0 + fi + case "$_checksum_style" in + sha256) + if ! check_cmd sha256sum; then + say "skipping sha256 checksum verification (it requires the 'sha256sum' command)" + return 0 + fi + _calculated_checksum="$(sha256sum -b "$_file" | awk '{printf $1}')" + ;; + sha512) + if ! check_cmd sha512sum; then + say "skipping sha512 checksum verification (it requires the 'sha512sum' command)" + return 0 + fi + _calculated_checksum="$(sha512sum -b "$_file" | awk '{printf $1}')" + ;; + sha3-256) + if ! check_cmd openssl; then + say "skipping sha3-256 checksum verification (it requires the 'openssl' command)" + return 0 + fi + _calculated_checksum="$(openssl dgst -sha3-256 "$_file" | awk '{printf $NF}')" + ;; + sha3-512) + if ! check_cmd openssl; then + say "skipping sha3-512 checksum verification (it requires the 'openssl' command)" + return 0 + fi + _calculated_checksum="$(openssl dgst -sha3-512 "$_file" | awk '{printf $NF}')" + ;; + blake2s) + if ! check_cmd b2sum; then + say "skipping blake2s checksum verification (it requires the 'b2sum' command)" + return 0 + fi + # Test if we have official b2sum with blake2s support + local _well_known_blake2s_checksum="93314a61f470985a40f8da62df10ba0546dc5216e1d45847bf1dbaa42a0e97af" + local _test_blake2s + _test_blake2s="$(printf "can do blake2s" | b2sum -a blake2s | awk '{printf $1}')" || _test_blake2s="" + + if [ "X$_test_blake2s" = "X$_well_known_blake2s_checksum" ]; then + _calculated_checksum="$(b2sum -a blake2s "$_file" | awk '{printf $1}')" || _calculated_checksum="" + else + say "skipping blake2s checksum verification (installed b2sum doesn't support blake2s)" + return 0 + fi + ;; + blake2b) + if ! check_cmd b2sum; then + say "skipping blake2b checksum verification (it requires the 'b2sum' command)" + return 0 + fi + _calculated_checksum="$(b2sum "$_file" | awk '{printf $1}')" + ;; + false) + ;; + *) + say "skipping unknown checksum style: $_checksum_style" + return 0 + ;; + esac + + if [ "$_calculated_checksum" != "$_checksum_value" ]; then + err "checksum mismatch + want: $_checksum_value + got: $_calculated_checksum" + fi +} + +download_binary_and_run_installer "$@" || exit 1 + +================ axolotlsay-installer.ps1 ================ +# Licensed under the MIT license +# , at your +# option. This file may not be copied, modified, or distributed +# except according to those terms. + +<# +.SYNOPSIS + +The installer for axolotlsay 0.2.2 + +.DESCRIPTION + +This script detects what platform you're on and fetches an appropriate archive from +https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2 +then unpacks the binaries and installs them to + + $env:CARGO_HOME/bin (or $HOME/.cargo/bin) + +It will then add that dir to PATH by editing your Environment.Path registry key + +.PARAMETER ArtifactDownloadUrl +The URL of the directory where artifacts can be fetched from + +.PARAMETER NoModifyPath +Don't add the install directory to PATH + +.PARAMETER Help +Print help + +#> + +param ( + [Parameter(HelpMessage = "The URL of the directory where artifacts can be fetched from")] + [string]$ArtifactDownloadUrl = 'https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2', + [Parameter(HelpMessage = "Don't add the install directory to PATH")] + [switch]$NoModifyPath, + [Parameter(HelpMessage = "Print Help")] + [switch]$Help +) + +$app_name = 'axolotlsay' +$app_version = '0.2.2' +if ($env:AXOLOTLSAY_INSTALLER_GHE_BASE_URL) { + $installer_base_url = $env:AXOLOTLSAY_INSTALLER_GHE_BASE_URL +} elseif ($env:AXOLOTLSAY_INSTALLER_GITHUB_BASE_URL) { + $installer_base_url = $env:AXOLOTLSAY_INSTALLER_GITHUB_BASE_URL +} else { + $installer_base_url = "https://github.com" +} +if ($env:INSTALLER_DOWNLOAD_URL) { + $ArtifactDownloadUrl = $env:INSTALLER_DOWNLOAD_URL +} else { + $ArtifactDownloadUrl = "$installer_base_url/axodotdev/axolotlsay/releases/download/v0.2.2" +} + +$receipt = @" +{"binaries":["CARGO_DIST_BINS"],"binary_aliases":{},"cdylibs":["CARGO_DIST_DYLIBS"],"cstaticlibs":["CARGO_DIST_STATICLIBS"],"install_layout":"unspecified","install_prefix":"AXO_INSTALL_PREFIX","modify_path":true,"provider":{"source":"cargo-dist","version":"CENSORED"},"source":{"app_name":"axolotlsay","name":"axolotlsay","owner":"axodotdev","release_type":"github"},"version":"CENSORED"} +"@ +$receipt_home = "${env:LOCALAPPDATA}\axolotlsay" + +if ($env:AXOLOTLSAY_DISABLE_UPDATE) { + $install_updater = $false +} else { + $install_updater = $true +} + +if ($NoModifyPath) { + Write-Information "-NoModifyPath has been deprecated; please set AXOLOTLSAY_NO_MODIFY_PATH=1 in the environment" +} + +if ($env:AXOLOTLSAY_NO_MODIFY_PATH) { + $NoModifyPath = $true +} + +$unmanaged_install = $env:AXOLOTLSAY_UNMANAGED_INSTALL + +if ($unmanaged_install) { + $NoModifyPath = $true + $install_updater = $false +} + +function Install-Binary($install_args) { + if ($Help) { + Get-Help $PSCommandPath -Detailed + Exit + } + + Initialize-Environment + + # Platform info injected by dist + $platforms = @{ + "aarch64-pc-windows-msvc" = @{ + "artifact_name" = "axolotlsay-x86_64-pc-windows-msvc.tar.gz" + "bins" = @("axolotlsay.exe") + "libs" = @() + "staticlibs" = @() + "zip_ext" = ".tar.gz" + "aliases" = @{ + } + "aliases_json" = '{}' + } + "x86_64-pc-windows-msvc" = @{ + "artifact_name" = "axolotlsay-x86_64-pc-windows-msvc.tar.gz" + "bins" = @("axolotlsay.exe") + "libs" = @() + "staticlibs" = @() + "zip_ext" = ".tar.gz" + "aliases" = @{ + } + "aliases_json" = '{}' + } + } + + $fetched = Download "$ArtifactDownloadUrl" $platforms + # FIXME: add a flag that lets the user not do this step + try { + Invoke-Installer -artifacts $fetched -platforms $platforms "$install_args" + } catch { + throw @" +We encountered an error trying to perform the installation; +please review the error messages below. + +$_ +"@ + } +} + +function Get-TargetTriple() { + try { + # NOTE: this might return X64 on ARM64 Windows, which is OK since emulation is available. + # It works correctly starting in PowerShell Core 7.3 and Windows PowerShell in Win 11 22H2. + # Ideally this would just be + # [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture + # but that gets a type from the wrong assembly on Windows PowerShell (i.e. not Core) + $a = [System.Reflection.Assembly]::LoadWithPartialName("System.Runtime.InteropServices.RuntimeInformation") + $t = $a.GetType("System.Runtime.InteropServices.RuntimeInformation") + $p = $t.GetProperty("OSArchitecture") + # Possible OSArchitecture Values: https://learn.microsoft.com/dotnet/api/system.runtime.interopservices.architecture + # Rust supported platforms: https://doc.rust-lang.org/stable/rustc/platform-support.html + switch ($p.GetValue($null).ToString()) + { + "X86" { return "i686-pc-windows-msvc" } + "X64" { return "x86_64-pc-windows-msvc" } + "Arm" { return "thumbv7a-pc-windows-msvc" } + "Arm64" { return "aarch64-pc-windows-msvc" } + } + } catch { + # The above was added in .NET 4.7.1, so Windows PowerShell in versions of Windows + # prior to Windows 10 v1709 may not have this API. + Write-Verbose "Get-TargetTriple: Exception when trying to determine OS architecture." + Write-Verbose $_ + } + + # This is available in .NET 4.0. We already checked for PS 5, which requires .NET 4.5. + Write-Verbose("Get-TargetTriple: falling back to Is64BitOperatingSystem.") + if ([System.Environment]::Is64BitOperatingSystem) { + return "x86_64-pc-windows-msvc" + } else { + return "i686-pc-windows-msvc" + } +} + +function Download($download_url, $platforms) { + $arch = Get-TargetTriple + + if (-not $platforms.ContainsKey($arch)) { + $platforms_json = ConvertTo-Json $platforms + throw "ERROR: could not find binaries for this platform. Last platform tried: $arch platform info: $platforms_json" + } + + # Lookup what we expect this platform to look like + $info = $platforms[$arch] + $zip_ext = $info["zip_ext"] + $bin_names = $info["bins"] + $lib_names = $info["libs"] + $staticlib_names = $info["staticlibs"] + $artifact_name = $info["artifact_name"] + + # Make a new temp dir to unpack things to + $tmp = New-Temp-Dir + $dir_path = "$tmp\$app_name$zip_ext" + + # Download and unpack! + $url = "$download_url/$artifact_name" + Write-Information "Downloading $app_name $app_version ($arch)" + Write-Verbose " from $url" + Write-Verbose " to $dir_path" + $wc = New-Object Net.Webclient + $wc.downloadFile($url, $dir_path) + + Write-Verbose "Unpacking to $tmp" + + # Select the tool to unpack the files with. + # + # As of windows 10(?), powershell comes with tar preinstalled, but in practice + # it only seems to support .tar.gz, and not xz/zstd. Still, we should try to + # forward all tars to it in case the user has a machine that can handle it! + switch -Wildcard ($zip_ext) { + ".zip" { + Expand-Archive -Path $dir_path -DestinationPath "$tmp"; + Break + } + ".tar.*" { + tar xf $dir_path --strip-components 1 -C "$tmp"; + Break + } + Default { + throw "ERROR: unknown archive format $zip_ext" + } + } + + # Let the next step know what to copy + $bin_paths = @() + foreach ($bin_name in $bin_names) { + Write-Verbose " Unpacked $bin_name" + $bin_paths += "$tmp\$bin_name" + } + $lib_paths = @() + foreach ($lib_name in $lib_names) { + Write-Verbose " Unpacked $lib_name" + $lib_paths += "$tmp\$lib_name" + } + $staticlib_paths = @() + foreach ($lib_name in $staticlib_names) { + Write-Verbose " Unpacked $lib_name" + $staticlib_paths += "$tmp\$lib_name" + } + + if (($null -ne $info["updater"]) -and $install_updater) { + $updater_id = $info["updater"]["artifact_name"] + $updater_url = "$download_url/$updater_id" + $out_name = "$tmp\axolotlsay-update.exe" + + $wc.downloadFile($updater_url, $out_name) + $bin_paths += $out_name + } + + return @{ + "bin_paths" = $bin_paths + "lib_paths" = $lib_paths + "staticlib_paths" = $staticlib_paths + } +} + +function Invoke-Installer($artifacts, $platforms) { + # Replaces the placeholder binary entry with the actual list of binaries + $arch = Get-TargetTriple + + if (-not $platforms.ContainsKey($arch)) { + $platforms_json = ConvertTo-Json $platforms + throw "ERROR: could not find binaries for this platform. Last platform tried: $arch platform info: $platforms_json" + } + + $info = $platforms[$arch] + + # Forces the install to occur at this path, not the default + $force_install_dir = $null + $install_layout = "unspecified" + # Check the newer app-specific variable before falling back + # to the older generic one + if (($env:AXOLOTLSAY_INSTALL_DIR)) { + $force_install_dir = $env:AXOLOTLSAY_INSTALL_DIR + $install_layout = "cargo-home" + } elseif (($env:CARGO_DIST_FORCE_INSTALL_DIR)) { + $force_install_dir = $env:CARGO_DIST_FORCE_INSTALL_DIR + $install_layout = "cargo-home" + } elseif ($unmanaged_install) { + $force_install_dir = $unmanaged_install + $install_layout = "flat" + } + + # The actual path we're going to install to + $dest_dir = $null + $dest_dir_lib = $null + # The install prefix we write to the receipt. + # For organized install methods like CargoHome, which have + # subdirectories, this is the root without `/bin`. For other + # methods, this is the same as `_install_dir`. + $receipt_dest_dir = $null + # Before actually consulting the configured install strategy, see + # if we're overriding it. + if (($force_install_dir)) { + switch ($install_layout) { + "hierarchical" { + $dest_dir = Join-Path $force_install_dir "bin" + $dest_dir_lib = Join-Path $force_install_dir "lib" + } + "cargo-home" { + $dest_dir = Join-Path $force_install_dir "bin" + $dest_dir_lib = $dest_dir + } + "flat" { + $dest_dir = $force_install_dir + $dest_dir_lib = $dest_dir + } + Default { + throw "Error: unrecognized installation layout: $install_layout" + } + } + $receipt_dest_dir = $force_install_dir + } + if (-Not $dest_dir) { + # first try $env:CARGO_HOME, then fallback to $HOME + # (for whatever reason $HOME is not a normal env var and doesn't need the $env: prefix) + $root = if (($base_dir = $env:CARGO_HOME)) { + $base_dir + } elseif (($base_dir = $HOME)) { + Join-Path $base_dir ".cargo" + } else { + throw "ERROR: could not find your HOME dir or CARGO_HOME to install binaries to" + } + + $dest_dir = Join-Path $root "bin" + $dest_dir_lib = $dest_dir + $receipt_dest_dir = $root + $install_layout = "cargo-home" + } + + # Looks like all of the above assignments failed + if (-Not $dest_dir) { + throw "ERROR: could not find a valid path to install to; please check the installation instructions" + } + + # The replace call here ensures proper escaping is inlined into the receipt + $receipt = $receipt.Replace('AXO_INSTALL_PREFIX', $receipt_dest_dir.replace("\", "\\")) + $receipt = $receipt.Replace('"install_layout":"unspecified"', -join('"install_layout":"', $install_layout, '"')) + + $dest_dir = New-Item -Force -ItemType Directory -Path $dest_dir + $dest_dir_lib = New-Item -Force -ItemType Directory -Path $dest_dir_lib + Write-Information "Installing to $dest_dir" + # Just copy the binaries from the temp location to the install dir + foreach ($bin_path in $artifacts["bin_paths"]) { + $installed_file = Split-Path -Path "$bin_path" -Leaf + Copy-Item "$bin_path" -Destination "$dest_dir" -ErrorAction Stop + Remove-Item "$bin_path" -Recurse -Force -ErrorAction Stop + Write-Information " $installed_file" + + if (($dests = $info["aliases"][$installed_file])) { + $source = Join-Path "$dest_dir" "$installed_file" + foreach ($dest_name in $dests) { + $dest = Join-Path $dest_dir $dest_name + $null = New-Item -ItemType HardLink -Target "$source" -Path "$dest" -Force -ErrorAction Stop + } + } + } + foreach ($lib_path in $artifacts["lib_paths"]) { + $installed_file = Split-Path -Path "$lib_path" -Leaf + Copy-Item "$lib_path" -Destination "$dest_dir_lib" -ErrorAction Stop + Remove-Item "$lib_path" -Recurse -Force -ErrorAction Stop + Write-Information " $installed_file" + } + foreach ($lib_path in $artifacts["staticlib_paths"]) { + $installed_file = Split-Path -Path "$lib_path" -Leaf + Copy-Item "$lib_path" -Destination "$dest_dir_lib" -ErrorAction Stop + Remove-Item "$lib_path" -Recurse -Force -ErrorAction Stop + Write-Information " $installed_file" + } + + $formatted_bins = ($info["bins"] | ForEach-Object { '"' + $_ + '"' }) -join "," + $receipt = $receipt.Replace('"CARGO_DIST_BINS"', $formatted_bins) + $formatted_libs = ($info["libs"] | ForEach-Object { '"' + $_ + '"' }) -join "," + $receipt = $receipt.Replace('"CARGO_DIST_DYLIBS"', $formatted_libs) + $formatted_staticlibs = ($info["staticlibs"] | ForEach-Object { '"' + $_ + '"' }) -join "," + $receipt = $receipt.Replace('"CARGO_DIST_STATICLIBS"', $formatted_staticlibs) + # Also replace the aliases with the arch-specific one + $receipt = $receipt.Replace('"binary_aliases":{}', -join('"binary_aliases":', $info['aliases_json'])) + if ($NoModifyPath) { + $receipt = $receipt.Replace('"modify_path":true', '"modify_path":false') + } + + # Write the install receipt + if ($install_updater) { + $null = New-Item -Path $receipt_home -ItemType "directory" -ErrorAction SilentlyContinue + # Trying to get Powershell 5.1 (not 6+, which is fake and lies) to write utf8 is a crime + # because "Out-File -Encoding utf8" actually still means utf8BOM, so we need to pull out + # .NET's APIs which actually do what you tell them (also apparently utf8NoBOM is the + # default in newer .NETs but I'd rather not rely on that at this point). + $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False + [IO.File]::WriteAllLines("$receipt_home/axolotlsay-receipt.json", "$receipt", $Utf8NoBomEncoding) + } + + # Respect the environment, but CLI takes precedence + if ($null -eq $NoModifyPath) { + $NoModifyPath = $env:INSTALLER_NO_MODIFY_PATH + } + + Write-Information "everything's installed!" + if (-not $NoModifyPath) { + Add-Ci-Path $dest_dir + if (Add-Path $dest_dir) { + Write-Information "" + Write-Information "To add $dest_dir to your PATH, either restart your system or run:" + Write-Information "" + Write-Information " set Path=$dest_dir;%Path% (cmd)" + Write-Information " `$env:Path = `"$dest_dir;`$env:Path`" (powershell)" + } + } +} + +# Attempt to do CI-specific rituals to get the install-dir on PATH faster +function Add-Ci-Path($OrigPathToAdd) { + # If GITHUB_PATH is present, then write install_dir to the file it refs. + # After each GitHub Action, the contents will be added to PATH. + # So if you put a curl | sh for this script in its own "run" step, + # the next step will have this dir on PATH. + # + # Note that GITHUB_PATH will not resolve any variables, so we in fact + # want to write the install dir and not an expression that evals to it + if (($gh_path = $env:GITHUB_PATH)) { + Write-Output "$OrigPathToAdd" | Out-File -FilePath "$gh_path" -Encoding utf8 -Append + } +} + +# Try to add the given path to PATH via the registry +# +# Returns true if the registry was modified, otherwise returns false +# (indicating it was already on PATH) +function Add-Path($OrigPathToAdd) { + Write-Verbose "Adding $OrigPathToAdd to your PATH" + $RegistryPath = "HKCU:\Environment" + $PropertyName = "Path" + $PathToAdd = $OrigPathToAdd + + $Item = if (Test-Path $RegistryPath) { + # If the registry key exists, get it + Get-Item -Path $RegistryPath + } else { + # If the registry key doesn't exist, create it + Write-Verbose "Creating $RegistryPath" + New-Item -Path $RegistryPath -Force + } + + $OldPath = "" + try { + # Try to get the old PATH value. If that fails, assume we're making it from scratch. + # Otherwise assume there's already paths in here and use a ; separator + $OldPath = $Item | Get-ItemPropertyValue -Name $PropertyName + $PathToAdd = "$PathToAdd;" + } catch { + # We'll be creating the PATH from scratch + Write-Verbose "No $PropertyName Property exists on $RegistryPath (we'll make one)" + } + + # Check if the path is already there + # + # We don't want to incorrectly match "C:\blah\" to "C:\blah\blah\", so we include the semicolon + # delimiters when searching, ensuring exact matches. To avoid corner cases we add semicolons to + # both sides of the input, allowing us to pretend we're always in the middle of a list. + Write-Verbose "Old $PropertyName Property is $OldPath" + if (";$OldPath;" -like "*;$OrigPathToAdd;*") { + # Already on path, nothing to do + Write-Verbose "install dir already on PATH, all done!" + return $false + } else { + # Actually update PATH + Write-Verbose "Actually mutating $PropertyName Property" + $NewPath = $PathToAdd + $OldPath + # We use -Force here to make the value already existing not be an error + $Item | New-ItemProperty -Name $PropertyName -Value $NewPath -PropertyType String -Force | Out-Null + return $true + } +} + +function Initialize-Environment() { + If (($PSVersionTable.PSVersion.Major) -lt 5) { + throw @" +Error: PowerShell 5 or later is required to install $app_name. +Upgrade PowerShell: + + https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell + +"@ + } + + # show notification to change execution policy: + $allowedExecutionPolicy = @('Unrestricted', 'RemoteSigned', 'ByPass') + If ((Get-ExecutionPolicy).ToString() -notin $allowedExecutionPolicy) { + throw @" +Error: PowerShell requires an execution policy in [$($allowedExecutionPolicy -join ", ")] to run $app_name. For example, to set the execution policy to 'RemoteSigned' please run: + + Set-ExecutionPolicy RemoteSigned -scope CurrentUser + +"@ + } + + # GitHub requires TLS 1.2 + If ([System.Enum]::GetNames([System.Net.SecurityProtocolType]) -notcontains 'Tls12') { + throw @" +Error: Installing $app_name requires at least .NET Framework 4.5 +Please download and install it first: + + https://www.microsoft.com/net/download + +"@ + } +} + +function New-Temp-Dir() { + [CmdletBinding(SupportsShouldProcess)] + param() + $parent = [System.IO.Path]::GetTempPath() + [string] $name = [System.Guid]::NewGuid() + New-Item -ItemType Directory -Path (Join-Path $parent $name) +} + +# PSScriptAnalyzer doesn't like how we use our params as globals, this calms it +$Null = $ArtifactDownloadUrl, $NoModifyPath, $Help +# Make Write-Information statements be visible +$InformationPreference = "Continue" + +# The default interactive handler +try { + Install-Binary "$Args" +} catch { + Write-Information $_ + exit 1 +} + +================ sha256.sum ================ +CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.gz + + +================ dist-manifest.json ================ +{ + "dist_version": "CENSORED", + "announcement_tag": "v0.2.2", + "announcement_tag_is_implicit": true, + "announcement_is_prerelease": false, + "announcement_title": "Version 0.2.2", + "announcement_changelog": "```text\n +----------------------------------+\n | now with arm64 linux binaries!!! |\n +----------------------------------+\n /\n≽(◕ ᴗ ◕)≼\n```", + "announcement_github_body": "## Release Notes\n\n```text\n +----------------------------------+\n | now with arm64 linux binaries!!! |\n +----------------------------------+\n /\n≽(◕ ᴗ ◕)≼\n```\n\n## Install axolotlsay 0.2.2\n\n### Install prebuilt binaries via shell script\n\n```sh\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-installer.sh | sh\n```\n\n### Install prebuilt binaries via powershell script\n\n```sh\npowershell -ExecutionPolicy ByPass -c \"irm https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-installer.ps1 | iex\"\n```\n\n## Download axolotlsay 0.2.2\n\n| File | Platform | Checksum |\n|--------|----------|----------|\n| [axolotlsay-aarch64-apple-darwin.tar.gz](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-aarch64-apple-darwin.tar.gz.sha256) |\n| [axolotlsay-x86_64-apple-darwin.tar.gz](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-x86_64-apple-darwin.tar.gz.sha256) |\n| [axolotlsay-x86_64-pc-windows-msvc.tar.gz](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-x86_64-pc-windows-msvc.tar.gz) | x64 Windows | [checksum](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-x86_64-pc-windows-msvc.tar.gz.sha256) |\n| [axolotlsay-x86_64-unknown-linux-gnu.tar.gz](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-x86_64-unknown-linux-gnu.tar.gz.sha256) |\n\n", + "releases": [ + { + "app_name": "axolotlsay", + "app_version": "0.2.2", + "env": { + "install_dir_env_var": "AXOLOTLSAY_INSTALL_DIR", + "unmanaged_dir_env_var": "AXOLOTLSAY_UNMANAGED_INSTALL", + "disable_update_env_var": "AXOLOTLSAY_DISABLE_UPDATE", + "no_modify_path_env_var": "AXOLOTLSAY_NO_MODIFY_PATH", + "github_base_url_env_var": "AXOLOTLSAY_INSTALLER_GITHUB_BASE_URL", + "ghe_base_url_env_var": "AXOLOTLSAY_INSTALLER_GHE_BASE_URL" + }, + "display_name": "axolotlsay", + "display": true, + "artifacts": [ + "source.tar.gz", + "source.tar.gz.sha256", + "axolotlsay-installer.sh", + "axolotlsay-installer.ps1", + "sha256.sum", + "axolotlsay-aarch64-apple-darwin.tar.gz", + "axolotlsay-aarch64-apple-darwin.tar.gz.sha256", + "axolotlsay-x86_64-apple-darwin.tar.gz", + "axolotlsay-x86_64-apple-darwin.tar.gz.sha256", + "axolotlsay-x86_64-pc-windows-msvc.tar.gz", + "axolotlsay-x86_64-pc-windows-msvc.tar.gz.sha256", + "axolotlsay-x86_64-unknown-linux-gnu.tar.gz", + "axolotlsay-x86_64-unknown-linux-gnu.tar.gz.sha256" + ], + "hosting": { + "github": { + "artifact_base_url": "https://github.com", + "artifact_download_path": "/axodotdev/axolotlsay/releases/download/v0.2.2", + "owner": "axodotdev", + "repo": "axolotlsay" + } + } + } + ], + "artifacts": { + "axolotlsay-aarch64-apple-darwin.tar.gz": { + "name": "axolotlsay-aarch64-apple-darwin.tar.gz", + "kind": "executable-zip", + "target_triples": [ + "aarch64-apple-darwin" + ], + "assets": [ + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "kind": "changelog" + }, + { + "name": "LICENSE-APACHE", + "path": "LICENSE-APACHE", + "kind": "license" + }, + { + "name": "LICENSE-MIT", + "path": "LICENSE-MIT", + "kind": "license" + }, + { + "name": "README.md", + "path": "README.md", + "kind": "readme" + }, + { + "id": "axolotlsay-aarch64-apple-darwin-exe-axolotlsay", + "name": "axolotlsay", + "path": "axolotlsay", + "kind": "executable" + } + ], + "checksum": "axolotlsay-aarch64-apple-darwin.tar.gz.sha256" + }, + "axolotlsay-aarch64-apple-darwin.tar.gz.sha256": { + "name": "axolotlsay-aarch64-apple-darwin.tar.gz.sha256", + "kind": "checksum", + "target_triples": [ + "aarch64-apple-darwin" + ] + }, + "axolotlsay-installer.ps1": { + "name": "axolotlsay-installer.ps1", + "kind": "installer", + "target_triples": [ + "aarch64-pc-windows-msvc", + "x86_64-pc-windows-msvc" + ], + "install_hint": "powershell -ExecutionPolicy ByPass -c \"irm https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-installer.ps1 | iex\"", + "description": "Install prebuilt binaries via powershell script" + }, + "axolotlsay-installer.sh": { + "name": "axolotlsay-installer.sh", + "kind": "installer", + "target_triples": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin", + "x86_64-pc-windows-gnu", + "x86_64-unknown-linux-gnu" + ], + "install_hint": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/axolotlsay/releases/download/v0.2.2/axolotlsay-installer.sh | sh", + "description": "Install prebuilt binaries via shell script" + }, + "axolotlsay-x86_64-apple-darwin.tar.gz": { + "name": "axolotlsay-x86_64-apple-darwin.tar.gz", + "kind": "executable-zip", + "target_triples": [ + "x86_64-apple-darwin" + ], + "assets": [ + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "kind": "changelog" + }, + { + "name": "LICENSE-APACHE", + "path": "LICENSE-APACHE", + "kind": "license" + }, + { + "name": "LICENSE-MIT", + "path": "LICENSE-MIT", + "kind": "license" + }, + { + "name": "README.md", + "path": "README.md", + "kind": "readme" + }, + { + "id": "axolotlsay-x86_64-apple-darwin-exe-axolotlsay", + "name": "axolotlsay", + "path": "axolotlsay", + "kind": "executable" + } + ], + "checksum": "axolotlsay-x86_64-apple-darwin.tar.gz.sha256" + }, + "axolotlsay-x86_64-apple-darwin.tar.gz.sha256": { + "name": "axolotlsay-x86_64-apple-darwin.tar.gz.sha256", + "kind": "checksum", + "target_triples": [ + "x86_64-apple-darwin" + ] + }, + "axolotlsay-x86_64-pc-windows-msvc.tar.gz": { + "name": "axolotlsay-x86_64-pc-windows-msvc.tar.gz", + "kind": "executable-zip", + "target_triples": [ + "x86_64-pc-windows-msvc" + ], + "assets": [ + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "kind": "changelog" + }, + { + "name": "LICENSE-APACHE", + "path": "LICENSE-APACHE", + "kind": "license" + }, + { + "name": "LICENSE-MIT", + "path": "LICENSE-MIT", + "kind": "license" + }, + { + "name": "README.md", + "path": "README.md", + "kind": "readme" + }, + { + "id": "axolotlsay-x86_64-pc-windows-msvc-exe-axolotlsay", + "name": "axolotlsay", + "path": "axolotlsay.exe", + "kind": "executable" + } + ], + "checksum": "axolotlsay-x86_64-pc-windows-msvc.tar.gz.sha256" + }, + "axolotlsay-x86_64-pc-windows-msvc.tar.gz.sha256": { + "name": "axolotlsay-x86_64-pc-windows-msvc.tar.gz.sha256", + "kind": "checksum", + "target_triples": [ + "x86_64-pc-windows-msvc" + ] + }, + "axolotlsay-x86_64-unknown-linux-gnu.tar.gz": { + "name": "axolotlsay-x86_64-unknown-linux-gnu.tar.gz", + "kind": "executable-zip", + "target_triples": [ + "x86_64-unknown-linux-gnu" + ], + "assets": [ + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "kind": "changelog" + }, + { + "name": "LICENSE-APACHE", + "path": "LICENSE-APACHE", + "kind": "license" + }, + { + "name": "LICENSE-MIT", + "path": "LICENSE-MIT", + "kind": "license" + }, + { + "name": "README.md", + "path": "README.md", + "kind": "readme" + }, + { + "id": "axolotlsay-x86_64-unknown-linux-gnu-exe-axolotlsay", + "name": "axolotlsay", + "path": "axolotlsay", + "kind": "executable" + } + ], + "checksum": "axolotlsay-x86_64-unknown-linux-gnu.tar.gz.sha256" + }, + "axolotlsay-x86_64-unknown-linux-gnu.tar.gz.sha256": { + "name": "axolotlsay-x86_64-unknown-linux-gnu.tar.gz.sha256", + "kind": "checksum", + "target_triples": [ + "x86_64-unknown-linux-gnu" + ] + }, + "sha256.sum": { + "name": "sha256.sum", + "kind": "unified-checksum" + }, + "source.tar.gz": { + "name": "source.tar.gz", + "kind": "source-tarball", + "checksum": "source.tar.gz.sha256" + }, + "source.tar.gz.sha256": { + "name": "source.tar.gz.sha256", + "kind": "checksum" + } + }, + "systems": { + "plan:all:": { + "id": "plan:all:", + "cargo_version_line": "CENSORED" + "build_environment": "indeterminate" + } + }, + "publish_prereleases": false, + "force_latest": false, + "ci": { + "github": { + "artifacts_matrix": { + "include": [ + { + "targets": [ + "aarch64-apple-darwin" + ], + "runner": "macos-13", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://dl.bearcove.cloud/dump/dist-cross/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, + "dist_args": "--artifacts=local --target=aarch64-apple-darwin", + "cache_provider": "github" + }, + { + "targets": [ + "x86_64-apple-darwin" + ], + "runner": "macos-13", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://dl.bearcove.cloud/dump/dist-cross/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, + "dist_args": "--artifacts=local --target=x86_64-apple-darwin", + "cache_provider": "github" + }, + { + "targets": [ + "x86_64-pc-windows-msvc" + ], + "runner": "windows-2019", + "install_dist": { + "shell": "pwsh", + "run": "irm https://dl.bearcove.cloud/dump/dist-cross/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, + "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", + "cache_provider": "github" + }, + { + "targets": [ + "x86_64-unknown-linux-gnu" + ], + "runner": "ubuntu-20.04", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://dl.bearcove.cloud/dump/dist-cross/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, + "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", + "cache_provider": "github" + } + ] + }, + "pr_run_mode": "plan" + } + }, + "linkage": [], + "upload_files": [] +} + +================ release.yml ================ +# This file was autogenerated by dist: https://opensource.axo.dev/cargo-dist/ +# +# Copyright 2022-2024, axodotdev +# SPDX-License-Identifier: MIT or Apache-2.0 +# +# CI that: +# +# * checks for a Git Tag that looks like a release +# * builds artifacts with dist (archives, installers, hashes) +# * uploads those artifacts to temporary workflow zip +# * on success, uploads the artifacts to a GitHub Release +# +# Note that the GitHub Release will be created with a generated +# title/body based on your changelogs. + +name: Release +permissions: + "contents": "write" + +# This task will run whenever you push a git tag that looks like a version +# like "1.0.0", "v0.1.0-prerelease.1", "my-app/0.1.0", "releases/v1.0.0", etc. +# Various formats will be parsed into a VERSION and an optional PACKAGE_NAME, where +# PACKAGE_NAME must be the name of a Cargo package in your workspace, and VERSION +# must be a Cargo-style SemVer Version (must have at least major.minor.patch). +# +# If PACKAGE_NAME is specified, then the announcement will be for that +# package (erroring out if it doesn't have the given version or isn't dist-able). +# +# If PACKAGE_NAME isn't specified, then the announcement will be for all +# (dist-able) packages in the workspace with that version (this mode is +# intended for workspaces with only one dist-able package, or with all dist-able +# packages versioned/released in lockstep). +# +# If you push multiple tags at once, separate instances of this workflow will +# spin up, creating an independent announcement for each one. However, GitHub +# will hard limit this to 3 tags per commit, as it will assume more tags is a +# mistake. +# +# If there's a prerelease-style suffix to the version, then the release(s) +# will be marked as a prerelease. +on: + pull_request: + push: + tags: + - '**[0-9]+.[0-9]+.[0-9]+*' + +jobs: + # Run 'dist plan' (or host) to determine what tasks we need to do + plan: + runs-on: "ubuntu-20.04" + outputs: + val: ${{ steps.plan.outputs.manifest }} + tag: ${{ !github.event.pull_request && github.ref_name || '' }} + tag-flag: ${{ !github.event.pull_request && format('--tag={0}', github.ref_name) || '' }} + publishing: ${{ !github.event.pull_request }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install dist + # we specify bash to get pipefail; it guards against the `curl` command + # failing. otherwise `sh` won't catch that `curl` returned non-0 + shell: bash + run: "curl --proto '=https' --tlsv1.2 -LsSf https://dl.bearcove.cloud/dump/dist-cross/cargo-dist-installer.sh | sh" + - name: Cache dist + uses: actions/upload-artifact@v4 + with: + name: cargo-dist-cache + path: ~/.cargo/bin/dist + # sure would be cool if github gave us proper conditionals... + # so here's a doubly-nested ternary-via-truthiness to try to provide the best possible + # functionality based on whether this is a pull_request, and whether it's from a fork. + # (PRs run on the *source* but secrets are usually on the *target* -- that's *good* + # but also really annoying to build CI around when it needs secrets to work right.) + - id: plan + run: | + dist ${{ (!github.event.pull_request && format('host --steps=create --tag={0}', github.ref_name)) || 'plan' }} --output-format=json > plan-dist-manifest.json + echo "dist ran successfully" + cat plan-dist-manifest.json + echo "manifest=$(jq -c "." plan-dist-manifest.json)" >> "$GITHUB_OUTPUT" + - name: "Upload dist-manifest.json" + uses: actions/upload-artifact@v4 + with: + name: artifacts-plan-dist-manifest + path: plan-dist-manifest.json + + # Build and packages all the platform-specific things + build-local-artifacts: + name: build-local-artifacts (${{ join(matrix.targets, ', ') }}) + # Let the initial task tell us to not run (currently very blunt) + needs: + - plan + if: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix.include != null && (needs.plan.outputs.publishing == 'true' || fromJson(needs.plan.outputs.val).ci.github.pr_run_mode == 'upload') }} + strategy: + fail-fast: false + # Target platforms/runners are computed by dist in create-release. + # Each member of the matrix has the following arguments: + # + # - runner: the github runner + # - dist-args: cli flags to pass to dist + # - install-dist: expression to run to install dist on the runner + # + # Typically there will be: + # - 1 "global" task that builds universal installers + # - N "local" tasks that build each platform's binaries and platform-specific installers + matrix: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix }} + runs-on: ${{ matrix.runner }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BUILD_MANIFEST_NAME: target/distrib/${{ join(matrix.targets, '-') }}-dist-manifest.json + steps: + - name: enable windows longpaths + run: | + git config --global core.longpaths true + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install dist + run: ${{ matrix.install_dist.run }} + # Get the dist-manifest + - name: Fetch local artifacts + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: target/distrib/ + merge-multiple: true + - name: Install dependencies + run: | + ${{ matrix.packages_install }} + - name: Build artifacts + run: | + # Actually do builds and make zips and whatnot + dist build ${{ needs.plan.outputs.tag-flag }} --print=linkage --output-format=json ${{ matrix.dist_args }} > dist-manifest.json + echo "dist ran successfully" + - id: cargo-dist + name: Post-build + # We force bash here just because github makes it really hard to get values up + # to "real" actions without writing to env-vars, and writing to env-vars has + # inconsistent syntax between shell and powershell. + shell: bash + run: | + # Parse out what we just built and upload it to scratch storage + echo "paths<> "$GITHUB_OUTPUT" + jq --raw-output ".upload_files[]" dist-manifest.json >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" + + cp dist-manifest.json "$BUILD_MANIFEST_NAME" + - name: "Upload artifacts" + uses: actions/upload-artifact@v4 + with: + name: artifacts-build-local-${{ join(matrix.targets, '_') }} + path: | + ${{ steps.cargo-dist.outputs.paths }} + ${{ env.BUILD_MANIFEST_NAME }} + + # Build and package all the platform-agnostic(ish) things + build-global-artifacts: + needs: + - plan + - build-local-artifacts + runs-on: "ubuntu-20.04" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BUILD_MANIFEST_NAME: target/distrib/global-dist-manifest.json + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install cached dist + uses: actions/download-artifact@v4 + with: + name: cargo-dist-cache + path: ~/.cargo/bin/ + - run: chmod +x ~/.cargo/bin/dist + # Get all the local artifacts for the global tasks to use (for e.g. checksums) + - name: Fetch local artifacts + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: target/distrib/ + merge-multiple: true + - id: cargo-dist + shell: bash + run: | + dist build ${{ needs.plan.outputs.tag-flag }} --output-format=json "--artifacts=global" > dist-manifest.json + echo "dist ran successfully" + + # Parse out what we just built and upload it to scratch storage + echo "paths<> "$GITHUB_OUTPUT" + jq --raw-output ".upload_files[]" dist-manifest.json >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" + + cp dist-manifest.json "$BUILD_MANIFEST_NAME" + - name: "Upload artifacts" + uses: actions/upload-artifact@v4 + with: + name: artifacts-build-global + path: | + ${{ steps.cargo-dist.outputs.paths }} + ${{ env.BUILD_MANIFEST_NAME }} + # Determines if we should publish/announce + host: + needs: + - plan + - build-local-artifacts + - build-global-artifacts + # Only run if we're "publishing", and only if local and global didn't fail (skipped is fine) + if: ${{ always() && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + runs-on: "ubuntu-20.04" + outputs: + val: ${{ steps.host.outputs.manifest }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install cached dist + uses: actions/download-artifact@v4 + with: + name: cargo-dist-cache + path: ~/.cargo/bin/ + - run: chmod +x ~/.cargo/bin/dist + # Fetch artifacts from scratch-storage + - name: Fetch artifacts + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: target/distrib/ + merge-multiple: true + - id: host + shell: bash + run: | + dist host ${{ needs.plan.outputs.tag-flag }} --steps=upload --steps=release --output-format=json > dist-manifest.json + echo "artifacts uploaded and released successfully" + cat dist-manifest.json + echo "manifest=$(jq -c "." dist-manifest.json)" >> "$GITHUB_OUTPUT" + - name: "Upload dist-manifest.json" + uses: actions/upload-artifact@v4 + with: + # Overwrite the previous copy + name: artifacts-dist-manifest + path: dist-manifest.json + # Create a GitHub Release while uploading all files to it + - name: "Download GitHub Artifacts" + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: artifacts + merge-multiple: true + - name: Cleanup + run: | + # Remove the granular manifests + rm -f artifacts/*-dist-manifest.json + - name: Create GitHub Release + env: + PRERELEASE_FLAG: "${{ fromJson(steps.host.outputs.manifest).announcement_is_prerelease && '--prerelease' || '' }}" + ANNOUNCEMENT_TITLE: "${{ fromJson(steps.host.outputs.manifest).announcement_title }}" + ANNOUNCEMENT_BODY: "${{ fromJson(steps.host.outputs.manifest).announcement_github_body }}" + RELEASE_COMMIT: "${{ github.sha }}" + run: | + # Write and read notes from a file to avoid quoting breaking things + echo "$ANNOUNCEMENT_BODY" > $RUNNER_TEMP/notes.txt + + gh release create "${{ needs.plan.outputs.tag }}" --target "$RELEASE_COMMIT" $PRERELEASE_FLAG --title "$ANNOUNCEMENT_TITLE" --notes-file "$RUNNER_TEMP/notes.txt" artifacts/* + + announce: + needs: + - plan + - host + # use "always() && ..." to allow us to wait for all publish jobs while + # still allowing individual publish jobs to skip themselves (for prereleases). + # "host" however must run to completion, no skipping allowed! + if: ${{ always() && needs.host.result == 'success' }} + runs-on: "ubuntu-20.04" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive diff --git a/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap b/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap index 2a88e8117..20bda29f3 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_edit_existing.snap @@ -3690,40 +3690,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3855,7 +3879,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap b/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap index dbef2cb6f..2de643a99 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_generic_workspace_basic.snap @@ -4291,40 +4291,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -4460,7 +4484,7 @@ jobs: key: ${{ join(matrix.targets, '-') }} cache-provider: ${{ matrix.cache_provider }} - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_homebrew_linux_only.snap b/cargo-dist/tests/snapshots/axolotlsay_homebrew_linux_only.snap index 896875da7..6d58b56c6 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_homebrew_linux_only.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_homebrew_linux_only.snap @@ -181,10 +181,16 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -316,7 +322,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_homebrew_macos_x86_64_only.snap b/cargo-dist/tests/snapshots/axolotlsay_homebrew_macos_x86_64_only.snap index a6667c77b..a123e6833 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_homebrew_macos_x86_64_only.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_homebrew_macos_x86_64_only.snap @@ -184,10 +184,16 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -319,7 +325,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap b/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap index 6dbe3e8d4..e1687b001 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_homebrew_packages.snap @@ -3768,42 +3768,66 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", "packages_install": "cat << EOF >Brewfile\ncask \"homebrew/cask/macfuse\"\nbrew \"libcue\"\nEOF\n\nbrew bundle install", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", "packages_install": "cat << EOF >Brewfile\ncask \"homebrew/cask/macfuse\"\nbrew \"libcue\"\nEOF\n\nbrew bundle install", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3935,7 +3959,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_musl.snap b/cargo-dist/tests/snapshots/axolotlsay_musl.snap index b7bb8d691..bea5b3fea 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_musl.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_musl.snap @@ -3083,41 +3083,65 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-musl" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-musl", "packages_install": "sudo apt-get update && sudo apt-get install musl-tools", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3249,7 +3273,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap b/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap index b61307f67..9ffa4948a 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_musl_no_gnu.snap @@ -3018,31 +3018,49 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-musl" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-musl", "packages_install": "sudo apt-get update && sudo apt-get install musl-tools", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3174,7 +3192,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap b/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap index 43bffb5a2..b794085d0 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_no_homebrew_publish.snap @@ -3690,40 +3690,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3859,7 +3883,7 @@ jobs: key: ${{ join(matrix.targets, '-') }} cache-provider: ${{ matrix.cache_provider }} - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_no_locals.snap b/cargo-dist/tests/snapshots/axolotlsay_no_locals.snap index b164dd2be..fb3f70e6e 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_no_locals.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_no_locals.snap @@ -258,40 +258,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/axolotlsay_no_locals_but_custom.snap b/cargo-dist/tests/snapshots/axolotlsay_no_locals_but_custom.snap index a400f4757..964bde3f0 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_no_locals_but_custom.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_no_locals_but_custom.snap @@ -258,40 +258,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap b/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap index 0878aae07..bf30c78c2 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_several_aliases.snap @@ -3806,40 +3806,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3971,7 +3995,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap index bedb65181..4fc4316af 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign.snap @@ -2180,40 +2180,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -2349,7 +2373,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap index bedb65181..4fc4316af 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_ssldotcom_windows_sign_prod.snap @@ -2180,40 +2180,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -2349,7 +2373,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_tag_namespace.snap b/cargo-dist/tests/snapshots/axolotlsay_tag_namespace.snap index 3a13358ac..10ef2404d 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_tag_namespace.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_tag_namespace.snap @@ -258,40 +258,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -423,7 +447,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_updaters.snap b/cargo-dist/tests/snapshots/axolotlsay_updaters.snap index e09c268f4..a03f8792c 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_updaters.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_updaters.snap @@ -3808,40 +3808,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3973,7 +3997,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap index 6cfbeda98..974481c44 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_global_build_job.snap @@ -3690,40 +3690,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3855,7 +3879,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap index bd13fedd1..4f17c5008 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_host_job.snap @@ -3690,40 +3690,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3855,7 +3879,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap index 978b8722f..fa18c6e2b 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_local_build_job.snap @@ -3690,40 +3690,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3855,7 +3879,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap index e0c0e641f..11b484708 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_plan_job.snap @@ -3690,40 +3690,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3869,7 +3893,7 @@ jobs: key: ${{ join(matrix.targets, '-') }} cache-provider: ${{ matrix.cache_provider }} - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap b/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap index e829349e2..356ccabff 100644 --- a/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap +++ b/cargo-dist/tests/snapshots/axolotlsay_user_publish_job.snap @@ -3690,40 +3690,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, @@ -3855,7 +3879,7 @@ jobs: with: submodules: recursive - name: Install dist - run: ${{ matrix.install_dist }} + run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v4 diff --git a/cargo-dist/tests/snapshots/install_path_cargo_home.snap b/cargo-dist/tests/snapshots/install_path_cargo_home.snap index 654adf932..ea1cb6961 100644 --- a/cargo-dist/tests/snapshots/install_path_cargo_home.snap +++ b/cargo-dist/tests/snapshots/install_path_cargo_home.snap @@ -2180,40 +2180,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap b/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap index 48deb57ef..a60725d17 100644 --- a/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap +++ b/cargo-dist/tests/snapshots/install_path_env_no_subdir.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_env_subdir.snap b/cargo-dist/tests/snapshots/install_path_env_subdir.snap index 61700125e..9c5b6ecb6 100644 --- a/cargo-dist/tests/snapshots/install_path_env_subdir.snap +++ b/cargo-dist/tests/snapshots/install_path_env_subdir.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap b/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap index a785e55d7..c9680d468 100644 --- a/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap +++ b/cargo-dist/tests/snapshots/install_path_env_subdir_space.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap b/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap index 05a278f9c..b2b5530ab 100644 --- a/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap +++ b/cargo-dist/tests/snapshots/install_path_env_subdir_space_deeper.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap b/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap index 397143974..e77874092 100644 --- a/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap +++ b/cargo-dist/tests/snapshots/install_path_fallback_no_env_var_set.snap @@ -2179,40 +2179,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap index 88eed83a1..20ae26808 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_deeper.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap index 042baa6c0..310299df5 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_min.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap index 301cdad20..36e88b3ff 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_space.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap b/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap index 6461c1c73..864b036ff 100644 --- a/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap +++ b/cargo-dist/tests/snapshots/install_path_home_subdir_space_deeper.snap @@ -2156,40 +2156,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap b/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap index 0a70b8f2f..3c080987a 100644 --- a/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap +++ b/cargo-dist/tests/snapshots/install_path_no_fallback_taken.snap @@ -2179,40 +2179,64 @@ CENSORED (see https://github.com/axodotdev/cargo-dist/issues/1477) source.tar.g "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/vSOME_VERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/cargo-dist/tests/snapshots/manifest.snap b/cargo-dist/tests/snapshots/manifest.snap index 8a11f1744..522efece6 100644 --- a/cargo-dist/tests/snapshots/manifest.snap +++ b/cargo-dist/tests/snapshots/manifest.snap @@ -526,72 +526,114 @@ stdout: "aarch64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "aarch64-unknown-linux-gnu" ], "runner": "buildjet-8vcpu-ubuntu-2204-arm", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-unknown-linux-gnu", - "cache_provider": "buildjet", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "buildjet" }, { "targets": [ "aarch64-unknown-linux-musl" ], "runner": "buildjet-8vcpu-ubuntu-2204-arm", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=aarch64-unknown-linux-musl", "packages_install": "sudo apt-get update && sudo apt-get install musl-tools", - "cache_provider": "buildjet", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "buildjet" }, { "targets": [ "x86_64-apple-darwin" ], "runner": "macos-13", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-apple-darwin", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-pc-windows-msvc" ], "runner": "windows-2019", - "install_dist": "powershell -c \"irm https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.ps1 | iex\"", + "install_dist": { + "shell": "pwsh", + "run": "irm https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.ps1 | iex" + }, + "install_cargo_auditable": { + "shell": "pwsh", + "run": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + }, "dist_args": "--artifacts=local --target=x86_64-pc-windows-msvc", - "cache_provider": "github", - "install_cargo_auditable": "powershell -c \"irm https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.ps1 | iex\"" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-gnu" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-gnu", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" }, { "targets": [ "x86_64-unknown-linux-musl" ], "runner": "ubuntu-20.04", - "install_dist": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh", + "install_dist": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v1.0.0-FAKEVERSION/cargo-dist-installer.sh | sh" + }, + "install_cargo_auditable": { + "shell": "sh", + "run": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + }, "dist_args": "--artifacts=local --target=x86_64-unknown-linux-musl", "packages_install": "sudo apt-get update && sudo apt-get install musl-tools", - "cache_provider": "github", - "install_cargo_auditable": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-secure-code/cargo-auditable/releases/latest/download/cargo-auditable-installer.sh | sh" + "cache_provider": "github" } ] }, diff --git a/dist-workspace.toml b/dist-workspace.toml index 00cb8cc05..bd8c0e678 100644 --- a/dist-workspace.toml +++ b/dist-workspace.toml @@ -4,7 +4,7 @@ members = ["cargo:."] # Config for 'dist' [dist] # The preferred dist version to use in CI (Cargo.toml SemVer syntax) -cargo-dist-version = "0.24.0-prerelease.2" +cargo-dist-version = "0.24.1" # CI backends to support ci = "github" # The installers to generate for each app