Skip to content

Commit

Permalink
Merge pull request #11 from DeterminateSystems/hoverbear/fh-169-magic…
Browse files Browse the repository at this point in the history
…-nix-cache-priv-try-logging-in-to-flakehub-if-it-hasnt

Try logging into FlakeHub if nix-installer didn't do that for us
  • Loading branch information
edolstra committed Feb 13, 2024
2 parents bc93e73 + 04d5b7e commit d514804
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 6 deletions.
Binary file modified bun.lockb
Binary file not shown.
30 changes: 29 additions & 1 deletion dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
"license": "LGPL",
"dependencies": {
"@actions/core": "^1.10.0",
"got": "^12.6.0",
"tail": "^2.2.6",
"tslib": "^2.5.2",
"got": "^12.6.0"
"tslib": "^2.5.2"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^25.0.0",
"@rollup/plugin-node-resolve": "^15.0.2",
"@rollup/plugin-typescript": "^11.1.1",
"@types/node": "^20.2.1",
"@types/node": "^20.11.17",
"rollup": "^3.22.0",
"typescript": "^5.0.4"
}
Expand Down
38 changes: 36 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,8 @@ async function setUpAutoCache() {
const output = openSync(outputPath, 'a');
const log = tailLog(daemonDir);
const notifyFd = 3;
const netrc = await netrcPath();

const daemon = spawn(
daemonBin,
[
Expand All @@ -136,7 +138,7 @@ async function setUpAutoCache() {
'--use-flakehub',
'--flakehub-cache-server', core.getInput('flakehub-cache-server'),
'--flakehub-api-server', core.getInput('flakehub-api-server'),
'--flakehub-api-server-netrc', path.join(process.env['RUNNER_TEMP'], 'determinate-nix-installer-netrc'),
'--flakehub-api-server-netrc', netrc,
] : []).concat(
core.getInput('use-gha-cache') === 'true' ? [
'--use-gha-cache'
Expand Down Expand Up @@ -196,6 +198,39 @@ async function notifyAutoCache() {
}
}


async function netrcPath() {
const expectedNetrcPath = path.join(process.env['RUNNER_TEMP'], 'determinate-nix-installer-netrc')
try {
await fs.access(expectedNetrcPath)
return expectedNetrcPath;
} catch {
// `nix-installer` was not used, the user may be registered with FlakeHub though.
const destinedNetrcPath = path.join(process.env['RUNNER_TEMP'], 'magic-nix-cache-netrc')
try {
await flakehub_login(destinedNetrcPath);
} catch (e) {
core.info("FlakeHub cache disabled.");
core.debug(`Error while logging into FlakeHub: ${e}`)
}
return destinedNetrcPath;
}
}

async function flakehub_login(netrc: string) {
const jwt = await core.getIDToken("api.flakehub.com");

await fs.writeFile(
netrc,
[
`machine api.flakehub.com login flakehub password ${jwt}`,
`machine flakehub.com login flakehub password ${jwt}`,
].join("\n"),
);

core.info("Logged in to FlakeHub.");
}

async function tearDownAutoCache() {
const daemonDir = process.env[ENV_CACHE_DAEMONDIR];

Expand Down Expand Up @@ -258,4 +293,3 @@ try {
}}

core.debug(`rip`);

0 comments on commit d514804

Please sign in to comment.