Split Nix installation into separate action

This commit is contained in:
Domen Kožar 2019-10-02 12:04:10 +02:00
commit 0d877d4d59
No known key found for this signature in database
GPG key ID: C2FFBCAFD2C24246
5 changed files with 241 additions and 25 deletions

View file

@ -1,8 +1,5 @@
import * as core from '@actions/core';
import * as exec from '@actions/exec';
import * as tc from '@actions/tool-cache';
import {homedir, userInfo} from 'os';
import {existsSync} from 'fs';
import {extrasperse, saneSplit} from './utils';
async function run() {
@ -13,25 +10,6 @@ async function run() {
const cachixPush = core.getInput('cachixPush', { required: true });
const signingKey = core.getInput('signingKey', { required: true });
// rest of the constants
const home = homedir();
const {username} = userInfo();
const PATH = process.env.PATH;
const CERTS_PATH = home + '/.nix-profile/etc/ssl/certs/ca-bundle.crt';
core.startGroup('Installing Nix')
// TODO: retry due to all the things that go wrong
const nixInstall = await tc.downloadTool('https://nixos.org/nix/install');
await exec.exec("sh", [nixInstall]);
core.exportVariable('PATH', `${PATH}:${home}/.nix-profile/bin`)
core.exportVariable('NIX_PATH', `/nix/var/nix/profiles/per-user/${username}/channels`)
core.endGroup()
// macOS needs certificates hints
if (existsSync(CERTS_PATH)) {
core.exportVariable('NIX_SSL_CERT_FILE', CERTS_PATH);
}
core.startGroup('Installing Cachix')
// TODO: use cachix 0.3.4 once released
//await exec.exec('nix-env', ['-iA', 'cachix', '-f', 'https://cachix.org/api/v1/install']);