From b455abf998ec535684bd7d39f5650c62f01a4937 Mon Sep 17 00:00:00 2001 From: Sascha Mann Date: Mon, 14 Dec 2020 14:01:55 +0100 Subject: [PATCH] Add prefix input (#24) This allows inserting commands like xvfb-run in front of the Julia command (fixes #3) Co-authored-by: Isaac Good --- README.md | 33 +++++++++++++++++++++++++++++++++ action.yml | 15 ++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 36a9a2b..262d8dd 100644 --- a/README.md +++ b/README.md @@ -33,3 +33,36 @@ jobs: - uses: julia-actions/julia-buildpkg@latest - uses: julia-actions/julia-runtest@latest ``` + +### Prefixing the Julia command + +In some packages, you may want to prefix the `julia` command with another command, e.g. for running tests of certain graphical libraries with `xvfb-run`. +In that case, you can add an input called `prefix` containing the command that will be inserted to your workflow: + +```yaml + - uses: julia-actions/julia-runtest@v1 + with: + prefix: xvfb-run +``` + +If you only want to add this prefix on certain builds, you can [include additional values into a combination](https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#example-including-additional-values-into-combinations) of your build matrix, e.g.: + +```yaml + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + version: ['1.0', '1', 'nightly'] + arch: [x64] + include: + - os: ubuntu-latest + prefix: xvfb-run + steps: + # ... + - uses: julia-actions/julia-runtest@v1 + with: + prefix: ${{ matrix.prefix }} + # ... +``` + +This will add the prefix `xvfb-run` to all builds where the `os` is `ubuntu-latest`. diff --git a/action.yml b/action.yml index 42ecaf8..00b6e9f 100644 --- a/action.yml +++ b/action.yml @@ -19,6 +19,10 @@ inputs: project: description: 'Value passed to the --project flag. The default value is the repository root: "@."' default: '@.' + prefix: + description: 'Value inserted in front of the julia command, e.g. for running xvfb-run julia [...]' + default: '' + required: false runs: using: 'composite' @@ -39,5 +43,14 @@ runs: # the request metadata to pkg.julialang.org when installing # packages via `Pkg.test`. JULIA_PKG_SERVER: "" - - run: julia --color=yes --check-bounds=yes --inline=${{ inputs.inline }} --depwarn=${{ inputs.depwarn }} --project=${{ inputs.project }} -e 'using Pkg; Pkg.test(coverage=${{ inputs.coverage }})' + - run: | + # The Julia command that will be executed + julia_cmd=( julia --color=yes --check-bounds=yes --inline=${{ inputs.inline }} --depwarn=${{ inputs.depwarn }} --project=${{ inputs.project }} -e 'using Pkg; Pkg.test(coverage=${{ inputs.coverage }})' ) + + # Add the prefix in front of the command if there is one + prefix="${{ inputs.prefix }}" + [[ -n $prefix ]] && julia_cmd=( "$prefix" "${julia_cmd[@]}" ) + + # Run the Julia command + "${julia_cmd[@]}" shell: bash