diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cc6ecbc..f3d3e3f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,7 +6,7 @@ jobs: tests: strategy: matrix: - os: [ubuntu-18.04, macos] + os: [ubuntu-18.04, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v1 @@ -17,4 +17,4 @@ jobs: - run: yarn test - name: Install Nix uses: ./ - - run: nix-build test.nix \ No newline at end of file + - run: nix-build test.nix diff --git a/lib/main.js b/lib/main.js index 97ae998..a4183df 100644 --- a/lib/main.js +++ b/lib/main.js @@ -33,6 +33,10 @@ function run() { yield exec.exec("sudo", ["sh", "-c", "echo http2 = false >> /etc/nix/nix.conf"]); // Set jobs to number of cores yield exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]); + // Catalina workaround https://github.com/NixOS/nix/issues/2925 + if (os_1.type() == "Darwin") { + yield exec.exec("sudo", ["mount", "-uw", "/"]); + } // TODO: retry due to all the things that go wrong const nixInstall = yield tc.downloadTool('https://nixos.org/nix/install'); yield exec.exec("sh", [nixInstall]); diff --git a/src/main.ts b/src/main.ts index 2ed508a..195dc6a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,7 @@ 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 {homedir, userInfo, type} from 'os'; import {existsSync} from 'fs'; async function run() { @@ -18,6 +18,11 @@ async function run() { // Set jobs to number of cores await exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]); + // Catalina workaround https://github.com/NixOS/nix/issues/2925 + if (type() == "Darwin") { + await exec.exec("sudo", ["mount", "-uw", "/"]); + } + // 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]);