Add nixBuildArgs parameter

This commit is contained in:
Tobias Happ 2020-01-05 19:52:08 +01:00 committed by Domen Kožar
commit a03feca499
No known key found for this signature in database
GPG key ID: C2FFBCAFD2C24246
5 changed files with 29 additions and 6 deletions

View file

@ -32,6 +32,13 @@ jobs:
with: with:
name: cachix-action name: cachix-action
skipNixBuild: true skipNixBuild: true
- name: Test nixBuildArgs parameter
uses: ./
with:
name: cachix-action
file: test-with-arg.nix
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
nixBuildArgs: --argstr arg foobar
- name: Test private cache - name: Test private cache
uses: ./ uses: ./
with: with:

View file

@ -15,6 +15,8 @@ inputs:
description: 'Nix file to build. Defaults to default.nix' description: 'Nix file to build. Defaults to default.nix'
attributes: attributes:
description: 'Nix attributes to nix-build. By default, all attributes are built.' description: 'Nix attributes to nix-build. By default, all attributes are built.'
nixBuildArgs:
description: 'Additional arguments for nix-build.'
branding: branding:
color: 'blue' color: 'blue'
icon: 'database' icon: 'database'

View file

@ -35,6 +35,7 @@ function run() {
const file = core.getInput('file'); const file = core.getInput('file');
const skipNixBuild = core.getInput('skipNixBuild'); const skipNixBuild = core.getInput('skipNixBuild');
const attributes = core.getInput('attributes'); const attributes = core.getInput('attributes');
const nixBuildArgs = core.getInput('nixBuildArgs');
const name = core.getInput('name', { required: true }); const name = core.getInput('name', { required: true });
const signingKey = core.getInput('signingKey'); const signingKey = core.getInput('signingKey');
const authToken = core.getInput('authToken'); const authToken = core.getInput('authToken');
@ -84,7 +85,8 @@ function run() {
} }
}; };
const args = strings_1.prependEach('-A', strings_1.nonEmptySplit(attributes, /\s+/)).concat([file || "default.nix"]); const args = strings_1.prependEach('-A', strings_1.nonEmptySplit(attributes, /\s+/)).concat([file || "default.nix"]);
yield exec.exec('nix-build', args, options); const additionalArgs = strings_1.nonEmptySplit(nixBuildArgs, /\s+/);
yield exec.exec('nix-build', additionalArgs.concat(args), options);
core.endGroup(); core.endGroup();
} }
} }

View file

@ -17,6 +17,7 @@ async function run() {
const file = core.getInput('file'); const file = core.getInput('file');
const skipNixBuild = core.getInput('skipNixBuild'); const skipNixBuild = core.getInput('skipNixBuild');
const attributes = core.getInput('attributes'); const attributes = core.getInput('attributes');
const nixBuildArgs = core.getInput('nixBuildArgs');
const name = core.getInput('name', { required: true }); const name = core.getInput('name', { required: true });
const signingKey = core.getInput('signingKey'); const signingKey = core.getInput('signingKey');
const authToken = core.getInput('authToken') const authToken = core.getInput('authToken')
@ -71,7 +72,8 @@ async function run() {
} }
}; };
const args = prependEach('-A', nonEmptySplit(attributes, /\s+/)).concat([file || "default.nix"]); const args = prependEach('-A', nonEmptySplit(attributes, /\s+/)).concat([file || "default.nix"]);
await exec.exec('nix-build', args, options); const additionalArgs = nonEmptySplit(nixBuildArgs, /\s+/);
await exec.exec('nix-build', additionalArgs.concat(args), options);
core.endGroup() core.endGroup()
} }
} catch (error) { } catch (error) {

10
test-with-arg.nix Normal file
View file

@ -0,0 +1,10 @@
{ arg ? null }:
with import <nixpkgs> {};
if arg == null
then abort "arg is not set"
else writeText "test-with-arg" ''
${toString builtins.currentTime}
${arg}
''