Added many, many more actions.
This commit is contained in:
44
utils/get-latest-version/action.yaml
Normal file
44
utils/get-latest-version/action.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
name: get-latest-version
|
||||
description: "Get the latest version of a package."
|
||||
inputs:
|
||||
versions:
|
||||
description: "Newline-seperated list of package versions."
|
||||
required: true
|
||||
filter:
|
||||
description: "String to filter by."
|
||||
required: false
|
||||
filterIsExpression:
|
||||
description: "Is the first filter a Regular Expression? Values: true, false."
|
||||
required: false
|
||||
default: "false"
|
||||
stripPrerelease:
|
||||
description: "Whether or not to strip prerelease versions. Values: true, false."
|
||||
required: false
|
||||
default: "false"
|
||||
outputs:
|
||||
version:
|
||||
description: "The latest version of the specified package."
|
||||
value: ${{ steps.parse.outputs.version }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: "Get latest package."
|
||||
id: parse
|
||||
run: |
|
||||
VERSIONS="${{ inputs.versions }}"
|
||||
# Filter versions, sort them, and get the latest one
|
||||
if [[ "${{ inputs.filterIsExpression }}" == "true" ]]; then
|
||||
EXPRESSION_FLAG="-E"
|
||||
fi
|
||||
if [[ "${{ inputs.stripPrerelease }}" == "true" ]]; then
|
||||
VERSIONS=$(echo "$VERSIONS" | grep -E "^(v)?[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?$")
|
||||
fi
|
||||
RESULT=$(echo "$VERSIONS" | grep $EXPRESSION_FLAG "${{ inputs.filter }}" || echo "error")
|
||||
|
||||
VERSION=$(echo "$RESULT" | sort -rV | head -1)
|
||||
|
||||
if [[ "$RESULT" != "error" ]]; then
|
||||
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
# No error if no versions found.
|
||||
shell: bash
|
||||
Reference in New Issue
Block a user