Compare commits

..

No commits in common. "main" and "v1.0" have entirely different histories.
main ... v1.0

6 changed files with 55 additions and 107 deletions

View File

@ -23,7 +23,7 @@ jobs:
fail-fast: false
matrix:
os: ["ubuntu", "macos"]
version: ["latest", "11.2.0", "11.1.0", "11.0.1", "11.0.0", "10.0.1"]
version: ["latest", "9.13.0", "9.12.0", "9.11.1", "9.11.0", "9.10.1"]
runs-on: ${{ matrix.os }}-latest
steps:
- name: Checkout ${{ github.repository }}

View File

@ -3,18 +3,6 @@ default_install_hook_types: ["pre-commit", "pre-push"]
default_stages: ["commit"]
minimum_pre_commit_version: 2.18.0
repos:
# Linting
- repo: local
hooks:
- id: prettier
name: Prettier
entry: prettier --write --ignore-unknown
language: node
types: [text]
args: []
# https://github.com/prettier/prettier/releases
additional_dependencies: ["prettier@3.3.3"]
stages: ["commit"]
# Security
- repo: https://github.com/Yelp/detect-secrets
rev: v1.5.0
@ -22,12 +10,12 @@ repos:
- id: detect-secrets
stages: ["commit", "push"]
- repo: https://github.com/gitleaks/gitleaks
rev: v8.21.0
rev: v8.18.4
hooks:
- id: gitleaks
stages: ["commit", "push"]
- repo: https://github.com/fabasoad/pre-commit-grype
rev: v0.6.1
rev: v0.4.0
hooks:
- id: grype-dir
args:
@ -36,7 +24,7 @@ repos:
stages: ["push"]
# Markdown
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.42.0
rev: v0.41.0
hooks:
- id: markdownlint-fix
# Shell
@ -54,14 +42,18 @@ repos:
stages: ["push"]
# GitHub Actions
- repo: https://github.com/rhysd/actionlint
rev: v1.7.3
rev: v1.7.1
hooks:
- id: actionlint
args: ["-pyflakes="]
stages: ["commit"]
# Other
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.1.0
hooks:
- id: prettier
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v4.6.0
hooks:
- id: check-executables-have-shebangs
stages: ["commit"]

View File

@ -24,7 +24,7 @@ action:
- uses: fabasoad/setup-mark-action@v1
with:
# (Optional) mark version. Defaults to "latest".
version: "11.2.0"
version: "9.11.1"
```
## Outputs

View File

@ -10,23 +10,12 @@ inputs:
description: "mark version."
required: false
default: "latest"
url_prefix:
description: "mark url."
required: false
default: "https://github.com/kovetskiy/mark"
runs:
using: "composite"
steps:
- name: Validate inputs
env:
INPUT_VERSION: "${{ inputs.version }}"
run: ./validate-inputs.sh "${INPUT_VERSION}"
shell: sh
working-directory: ${{ github.action_path }}/src
- name: Install kovetskiy/mark
env:
INPUT_VERSION: "${{ inputs.version }}"
INPUT_URL_PREFIX: "${{ inputs.url_prefix }}"
run: ./install-mark.sh "${INPUT_VERSION}" "${INPUT_URL_PREFIX}"
run: ./install-mark.sh "${INPUT_VERSION}"
shell: sh
working-directory: ${{ github.action_path }}/src

View File

@ -1,58 +1,52 @@
#!/usr/bin/env sh
main() {
mark_version="${1}"
url_prefix="${2}"
mark_version="$1"
# shellcheck disable=SC2039
if command -v mark >/dev/null 2>&1; then
# shellcheck disable=SC2039
if command -v mark >/dev/null 2>&1; then
msg="$(mark --version) is already installed. Skipping installation."
printf "[info] [setup-mark-action] %s %s\n" "$(date +'%Y-%m-%d %T')" "${msg}"
printf "[setup-mark-action] %s level=info %s\n" "$(date +'%Y-%m-%d %T')" "${msg}"
exit 0
fi
fi
url_prefix="${url_prefix}/releases"
if [ "${mark_version}" = "latest" ]; then
url_prefix="${url_prefix}/latest/download"
else
url_prefix="${url_prefix}/download/${mark_version}"
fi
if [ "${mark_version}" = "latest" ]; then
url_prefix="https://github.com/kovetskiy/mark/releases/latest/download"
else
url_prefix="https://github.com/kovetskiy/mark/releases/download/${mark_version}"
fi
url=""
if [ "${RUNNER_OS}" = "macOS" ]; then
url=""
if [ "${RUNNER_OS}" = "macOS" ]; then
if [ "${RUNNER_ARCH}" = "X64" ]; then
url="${url_prefix}/mark_Darwin_x86_64.tar.gz"
elif [ "${RUNNER_ARCH}" = "ARM64" ]; then
url="${url_prefix}/mark_Darwin_arm64.tar.gz"
fi
elif [ "${RUNNER_OS}" = "Linux" ]; then
elif [ "${RUNNER_OS}" = "Linux" ]; then
if [ "${RUNNER_ARCH}" = "X64" ]; then
url="${url_prefix}/mark_Linux_x86_64.tar.gz"
elif [ "${RUNNER_ARCH}" = "ARM64" ]; then
url="${url_prefix}/mark_Linux_arm64.tar.gz"
fi
fi
fi
if [ -z "${url}" ]; then
if [ -z "${url}" ]; then
echo "::error title=OS is not supported::${RUNNER_OS} ${RUNNER_ARCH} is not supported"
exit 1
fi
fi
bin_path="${RUNNER_TEMP}/bin"
mkdir -p "${bin_path}"
tar_path="${bin_path}/mark.tar.gz"
checksums_path="${bin_path}/checksums.txt"
curl -sL "${url}" -o "${tar_path}"
curl -sL "${url_prefix}/checksums.txt" -o "${checksums_path}"
bin_path="${RUNNER_TEMP}/bin"
mkdir -p "${bin_path}"
tar_path="${bin_path}/mark.tar.gz"
checksums_path="${bin_path}/checksums.txt"
curl -sL "${url}" -o "${tar_path}"
curl -sL "${url_prefix}/checksums.txt" -o "${checksums_path}"
if ! grep -qF "$(shasum -a 256 "${tar_path}" | cut -d ' ' -f 1)" "${checksums_path}"; then
if ! grep -qF "$(shasum -a 256 "${tar_path}" | cut -d ' ' -f 1)" "${checksums_path}"; then
echo "::error title=Checksum error::Checksum is different from the downloaded binary"
exit 1
fi
fi
tar -xf "${tar_path}" -C "${bin_path}"
rm -f "${tar_path}"
echo "${bin_path}" >> "$GITHUB_PATH"
}
main "$@"
tar -xf "${tar_path}" -C "${bin_path}"
rm -f "${tar_path}"
echo "${bin_path}" >> "$GITHUB_PATH"

View File

@ -1,27 +0,0 @@
#!/usr/bin/env sh
# Validates value to be a valid semver string.
# Parameters:
# 1. (Required) Param name to display it correctly in the error message for the
# users.
# 2. (Required) Param value that will be validated.
#
# Usage examples:
# check_semver "my-valid-semver-1" "1.2.3"
# check_semver "my-valid-semver-3" "latest"
# check_semver "my-invalid-semver" "1.2.3-rc1"
check_semver() {
if ! echo "${2}" | grep -Eq '^(latest|[0-9]+(\.[0-9]+){0,2})$'; then
msg="\"${1}\" parameter is invalid. \"${2}\" is not a valid semver."
echo "::error title=Invalid parameter::${msg}"
exit 30
fi
}
main() {
input_version="${1}"
check_semver "version" "${input_version}"
}
main "$@"