Merge pull request #45 from cachix/ignore-garbage-collected

Ignore garbage collected
This commit is contained in:
Domen Kožar 2020-05-12 11:21:10 +02:00 committed by GitHub
commit 0a765b01e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 21 deletions

View file

@ -4,45 +4,53 @@ on:
push: push:
jobs: jobs:
tests: public-cache:
strategy: strategy:
matrix: matrix:
os: [ubuntu-18.04, macos] os: [ubuntu-18.04, macos]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v2
- run: yarn install --frozen-lockfile - run: yarn install --frozen-lockfile
- run: yarn build - run: yarn build
- run: yarn test
- uses: cachix/install-nix-action@v8 - uses: cachix/install-nix-action@v8
- name: Test public cache - name: Test public cache
uses: ./ uses: ./
with: with:
name: cachix-action name: cachix-action
file: test.nix
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- run: nix-build test.nix
public-cache-no-signing-key:
strategy:
matrix:
os: [ubuntu-18.04, macos]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- run: yarn install --frozen-lockfile
- run: yarn build
- uses: cachix/install-nix-action@v8
- name: Test public cache no signing key - name: Test public cache no signing key
uses: ./ uses: ./
with: with:
name: cachix-action name: cachix-action
file: test.nix - run: nix-build test.nix
signingKey: ''
- name: Test public cache no pushing private-cache:
uses: ./ strategy:
with: matrix:
name: cachix-action os: [ubuntu-18.04, macos]
skipNixBuild: true runs-on: ${{ matrix.os }}
- name: Test nixBuildArgs parameter steps:
uses: ./ - uses: actions/checkout@v2
with: - run: yarn install --frozen-lockfile
name: cachix-action - run: yarn build
file: test-with-arg.nix - uses: cachix/install-nix-action@v8
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
nixBuildArgs: --argstr arg foobar
- name: Test private cache - name: Test private cache
uses: ./ uses: ./
with: with:
name: cachix-action-private name: cachix-action-private
file: test.nix
signingKey: '${{ secrets.CACHIX_SIGNING_KEY_PRIVATE }}' signingKey: '${{ secrets.CACHIX_SIGNING_KEY_PRIVATE }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix-build test.nix

3
dist/main/index.js vendored
View file

@ -971,6 +971,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const core = __importStar(__webpack_require__(470)); const core = __importStar(__webpack_require__(470));
const child_process_1 = __webpack_require__(129);
const coreCommand = __importStar(__webpack_require__(431)); const coreCommand = __importStar(__webpack_require__(431));
const exec = __importStar(__webpack_require__(986)); const exec = __importStar(__webpack_require__(986));
exports.IsPost = !!process.env['STATE_isPost']; exports.IsPost = !!process.env['STATE_isPost'];
@ -1010,7 +1011,7 @@ function upload() {
try { try {
if (signingKey !== "" && skipPush !== 'true') { if (signingKey !== "" && skipPush !== 'true') {
core.startGroup('Cachix: pushing paths'); core.startGroup('Cachix: pushing paths');
yield exec.exec("sh", ["-c", `nix path-info --all | grep -v '\.drv$' | cat - /tmp/store-path-pre-build | sort | uniq -u | ${cachixExecutable} push ${name}`]); child_process_1.execFileSync(`${__dirname}/push-paths.sh`, { stdio: 'inherit' });
core.endGroup(); core.endGroup();
} }
} }

4
dist/main/push-paths.sh vendored Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -euo pipefail
comm -13 <(sort /tmp/store-path-pre-build) <(nix path-info --all | grep -v '\.drv$' | sort) | $1 push -j8 $2

View file

@ -1,4 +1,5 @@
import * as core from '@actions/core'; import * as core from '@actions/core';
import { execFileSync } from 'child_process';
import * as coreCommand from '@actions/core/lib/command' import * as coreCommand from '@actions/core/lib/command'
import * as exec from '@actions/exec'; import * as exec from '@actions/exec';
@ -41,7 +42,7 @@ async function upload() {
try { try {
if (signingKey !== "" && skipPush !== 'true') { if (signingKey !== "" && skipPush !== 'true') {
core.startGroup('Cachix: pushing paths'); core.startGroup('Cachix: pushing paths');
await exec.exec("sh", ["-c", `nix path-info --all | grep -v '\.drv$' | cat - /tmp/store-path-pre-build | sort | uniq -u | ${cachixExecutable} push ${name}`]); execFileSync(`${__dirname}/push-paths.sh`, [cachixExecutable, name], { stdio: 'inherit' });
core.endGroup(); core.endGroup();
} }
} catch (error) { } catch (error) {