Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 30 additions & 4 deletions .github/workflows/on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,34 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Test MultiTool Action
uses: wack/multitool-action@${{ github.sha }}

# Test whether the Action installs correctly.
- name: Install MultiTool via Action
uses: "./"
with:
install-only: true
version: "v0.3.0"

- name: "Test CLI is installed"
run: "which multi"

- name: "Test CLI help works"
run: "multi -h"

- name: "Test CLI version matches"
run: |
if [ $(multi version) = "v0.3.0" ]; then
echo "Version is correct."
else
echo "Version is incorrect."
exit 1
fi

# Test whether the Action logs in correctly.
- name: Login
uses: "./"
with:
input-string: "test input"
email: ${{ secrets.MULTITOOL_QA_EMAIL }}
password: ${{ secrets.MULTITOOL_QA_PASSWORD }}
dry-run: true
cache-binary: false
53 changes: 46 additions & 7 deletions action.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,37 @@
name: 'MultiTool'
# TODO: Add an action description.
# TODO: Run Taplo YAML checker over this file.
# TODO: Change single quotes to double quotes
description: ''

inputs:
input-string:
description: 'Input string'
required: true
version:
description: 'Version string (e.g. v0.3.0). If none provided, defaults to latest'
required: false
default: "latest"

install-only:
description: "Whether to install the CLI and then exit"
required: false
default: false

dry-run:
description: "Skips running `multi run`. Useful for testing login credentials."
required: false
default: false

email:
description: "An email address to use when logging in."
required: false

password:
description: "The password to use when logging in. NB: Pass this as an environment secret."
required: false

cache-binary:
description: "When enabled (default), the `multi` binary will be added to the Actions cache and reused between runs"
required: false
default: true

outputs:
output-string:
Expand All @@ -14,8 +41,20 @@ outputs:
runs:
using: 'composite'
steps:
- name: 'MultiTool Step'
id: multitool-step
- name: Install the MultiTool CLI
uses: jaxxstorm/action-install-gh-release@v2.1.0
with: # Grab the latest version
repo: wack/multitool
tag: ${{ inputs.version }}
cache: ${{ inputs.cache-binary && 'enable' }}

- name: Login
shell: bash
if: ${{ !inputs.install-only }}
run: "multi login --enable-colors=always --email=${{ inputs.email }} --password=${{ inputs.password }}"

- name: Multi Run
shell: bash
run: |
echo "result=${{ inputs.input-string }}" >> $GITHUB_OUTPUT
if: ${{ !(inputs.install-only || inputs.dry-run) }}
run: "multi run --enable-colors=always"