Skip to content

Commit

Permalink
chore: merge pull request #58 from threeal/add-shell-inputs
Browse files Browse the repository at this point in the history
Add `shell` Action Input
  • Loading branch information
threeal authored Jul 4, 2023
2 parents 93a6d71 + ca8ab2f commit 7ef2eb8
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 3 deletions.
13 changes: 13 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,16 @@ jobs:
build-args: --target test_c --target test_cpp
run-test: true
test-args: -R test

specified-shell:
runs-on: windows-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3

- name: Use the action with specified shell
uses: ./
with:
shell: bash
source-dir: test
run-build: true
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ For more information, refer to [action.yml](./action.yml) and the [GitHub Action

| Name | Value Type | Description |
| --- | --- | --- |
| `shell` | String | The shell to be used to run the commands. It defaults to `pwsh` on Windows and `bash` on Linux and macOS. Refer to [this](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell) for more information on available shell options. |
| `source-dir` | Path | The source directory of the CMake project. It defaults to the current directory. |
| `build-dir` | Path | The build directory of the CMake project. It defaults to the `build` directory inside the source directory. |
| `generator` | String | The build system generator for the CMake project. It appends the CMake configuration arguments with `-G [val]`. |
Expand Down
16 changes: 13 additions & 3 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ branding:
color: gray-dark
icon: terminal
inputs:
shell:
description: The shell to be used to run the commands
required: false
source-dir:
description: The source directory of the CMake project
required: false
Expand Down Expand Up @@ -57,6 +60,13 @@ runs:
id: process-inputs
shell: bash
run: |
if [ -n '${{ inputs.shell }}' ]; then
SHELL='${{ inputs.shell }}'
else
SHELL='${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}'
fi
echo "shell=$SHELL" >> $GITHUB_OUTPUT
SOURCE_DIR="."
if [ -n '${{ inputs.source-dir }}' ]; then
SOURCE_DIR="${{ inputs.source-dir }}"
Expand Down Expand Up @@ -121,15 +131,15 @@ runs:
esac
- name: Configure the CMake project
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
shell: ${{ steps.process-inputs.outputs.shell }}
run: cmake ${{ steps.process-inputs.outputs.cmake-args }}

- name: Build targets
if: inputs.run-build != 'false' || inputs.run-test != 'false'
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
shell: ${{ steps.process-inputs.outputs.shell }}
run: cmake ${{ steps.process-inputs.outputs.cmake-build-args }}

- name: Run tests
if: inputs.run-test != 'false'
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
shell: ${{ steps.process-inputs.outputs.shell }}
run: ctest ${{ steps.process-inputs.outputs.cmake-test-args }}

0 comments on commit 7ef2eb8

Please sign in to comment.