Pass the random attribution as a correlating property when fetching the binary, and when submitting the post-run diagnostic

This commit is contained in:
Graham Christensen 2023-10-04 09:15:34 -04:00
parent b67b186a64
commit 40148f26db
3 changed files with 26 additions and 20 deletions

20
dist/index.js vendored
View file

@ -83,13 +83,13 @@ class NixInstallerAction {
this.start_daemon = action_input_bool("start-daemon");
this.diagnostic_endpoint = action_input_string_or_null("diagnostic-endpoint");
this.trust_runner_user = action_input_bool("trust-runner-user");
this.nix_installer_url = resolve_nix_installer_url(this.platform);
this.attribution = (0, node_crypto_1.randomUUID)();
this.attribution = `GH-${(0, node_crypto_1.randomUUID)()}`;
this.nix_installer_url = resolve_nix_installer_url(this.platform, this.attribution);
}
executionEnvironment() {
const execution_env = {};
execution_env.NIX_INSTALLER_NO_CONFIRM = "true";
execution_env.NIX_INSTALLER_ATTRIBUTION = `GH-${this.attribution}`;
execution_env.NIX_INSTALLER_ATTRIBUTION = this.attribution;
if (this.backtrace !== null) {
execution_env.RUST_BACKTRACE = this.backtrace;
}
@ -363,6 +363,7 @@ class NixInstallerAction {
},
body: JSON.stringify({
"post-github-workflow-run-report": true,
cor: this.attribution,
conclusion: yield this.get_workflow_conclusion(),
}),
});
@ -442,37 +443,38 @@ function get_default_planner() {
throw new Error(`Unsupported \`RUNNER_OS\` (currently \`${env_os}\`)`);
}
}
function resolve_nix_installer_url(platform) {
function resolve_nix_installer_url(platform, attribution) {
// Only one of these are allowed.
const nix_installer_branch = action_input_string_or_null("nix-installer-branch");
const nix_installer_pr = action_input_number_or_null("nix-installer-pr");
const nix_installer_revision = action_input_string_or_null("nix-installer-revision");
const nix_installer_tag = action_input_string_or_null("nix-installer-tag");
const nix_installer_url = action_input_string_or_null("nix-installer-url");
const url_suffix = `ci=github&cor=${attribution}`;
let resolved_nix_installer_url = null;
let num_set = 0;
if (nix_installer_branch !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/branch/${nix_installer_branch}/nix-installer-${platform}?ci=github`);
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/branch/${nix_installer_branch}/nix-installer-${platform}?${url_suffix}`);
}
else if (nix_installer_pr !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/pr/${nix_installer_pr}/nix-installer-${platform}?ci=github`);
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/pr/${nix_installer_pr}/nix-installer-${platform}?${url_suffix}`);
}
else if (nix_installer_revision !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/rev/${nix_installer_revision}/nix-installer-${platform}?ci=github`);
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/rev/${nix_installer_revision}/nix-installer-${platform}?${url_suffix}`);
}
else if (nix_installer_tag !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/tag/${nix_installer_tag}/nix-installer-${platform}?ci=github`);
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/tag/${nix_installer_tag}/nix-installer-${platform}?${url_suffix}`);
}
else if (nix_installer_url !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(nix_installer_url);
}
else {
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/nix-installer-${platform}?ci=github`);
resolved_nix_installer_url = new URL(`https://install.determinate.systems/nix/nix-installer-${platform}?${url_suffix}`);
}
if (num_set > 1) {
throw new Error(`The following options are mututally exclusive, but ${num_set} were set: \`nix_installer_branch\`, \`nix_installer_pr\`, \`nix_installer_revision\`, \`nix_installer_tag\`, and \`nix_installer_url\``);

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View file

@ -86,15 +86,18 @@ class NixInstallerAction {
"diagnostic-endpoint",
);
this.trust_runner_user = action_input_bool("trust-runner-user");
this.nix_installer_url = resolve_nix_installer_url(this.platform);
this.attribution = randomUUID();
this.attribution = `GH-${randomUUID()}`;
this.nix_installer_url = resolve_nix_installer_url(
this.platform,
this.attribution,
);
}
private executionEnvironment(): ExecuteEnvironment {
const execution_env: ExecuteEnvironment = {};
execution_env.NIX_INSTALLER_NO_CONFIRM = "true";
execution_env.NIX_INSTALLER_ATTRIBUTION = `GH-${this.attribution}`;
execution_env.NIX_INSTALLER_ATTRIBUTION = this.attribution;
if (this.backtrace !== null) {
execution_env.RUST_BACKTRACE = this.backtrace;
@ -422,6 +425,7 @@ class NixInstallerAction {
},
body: JSON.stringify({
"post-github-workflow-run-report": true,
cor: this.attribution,
conclusion: await this.get_workflow_conclusion(),
}),
});
@ -542,7 +546,7 @@ function get_default_planner(): string {
}
}
function resolve_nix_installer_url(platform: string): URL {
function resolve_nix_installer_url(platform: string, attribution: string): URL {
// Only one of these are allowed.
const nix_installer_branch = action_input_string_or_null(
"nix-installer-branch",
@ -553,36 +557,36 @@ function resolve_nix_installer_url(platform: string): URL {
);
const nix_installer_tag = action_input_string_or_null("nix-installer-tag");
const nix_installer_url = action_input_string_or_null("nix-installer-url");
const url_suffix = `ci=github&cor=${attribution}`;
let resolved_nix_installer_url = null;
let num_set = 0;
if (nix_installer_branch !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(
`https://install.determinate.systems/nix/branch/${nix_installer_branch}/nix-installer-${platform}?ci=github`,
`https://install.determinate.systems/nix/branch/${nix_installer_branch}/nix-installer-${platform}?${url_suffix}`,
);
} else if (nix_installer_pr !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(
`https://install.determinate.systems/nix/pr/${nix_installer_pr}/nix-installer-${platform}?ci=github`,
`https://install.determinate.systems/nix/pr/${nix_installer_pr}/nix-installer-${platform}?${url_suffix}`,
);
} else if (nix_installer_revision !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(
`https://install.determinate.systems/nix/rev/${nix_installer_revision}/nix-installer-${platform}?ci=github`,
`https://install.determinate.systems/nix/rev/${nix_installer_revision}/nix-installer-${platform}?${url_suffix}`,
);
} else if (nix_installer_tag !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(
`https://install.determinate.systems/nix/tag/${nix_installer_tag}/nix-installer-${platform}?ci=github`,
`https://install.determinate.systems/nix/tag/${nix_installer_tag}/nix-installer-${platform}?${url_suffix}`,
);
} else if (nix_installer_url !== null) {
num_set += 1;
resolved_nix_installer_url = new URL(nix_installer_url);
} else {
resolved_nix_installer_url = new URL(
`https://install.determinate.systems/nix/nix-installer-${platform}?ci=github`,
`https://install.determinate.systems/nix/nix-installer-${platform}?${url_suffix}`,
);
}