Compare commits
	
		
			7 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 939b270d72 | |||
| 9cf6fa0471 | |||
| 
						 | 
					439b544eb5 | ||
| 
						 | 
					5fd75da7db | ||
| 
						 | 
					dfde198884 | ||
| 
						 | 
					6c97b745ef | ||
| 
						 | 
					c04ad35429 | 
							
								
								
									
										2
									
								
								.github/workflows/functional-tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/functional-tests.yml
									
									
									
									
										vendored
									
									
								
							@ -23,7 +23,7 @@ jobs:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: ["ubuntu", "macos"]
 | 
			
		||||
        version: ["latest", "9.13.0", "9.12.0", "9.11.1", "9.11.0", "9.10.1"]
 | 
			
		||||
        version: ["latest", "11.2.0", "11.1.0", "11.0.1", "11.0.0", "10.0.1"]
 | 
			
		||||
    runs-on: ${{ matrix.os }}-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout ${{ github.repository }}
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,18 @@ 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
 | 
			
		||||
@ -10,12 +22,12 @@ repos:
 | 
			
		||||
      - id: detect-secrets
 | 
			
		||||
        stages: ["commit", "push"]
 | 
			
		||||
  - repo: https://github.com/gitleaks/gitleaks
 | 
			
		||||
    rev: v8.18.4
 | 
			
		||||
    rev: v8.21.0
 | 
			
		||||
    hooks:
 | 
			
		||||
      - id: gitleaks
 | 
			
		||||
        stages: ["commit", "push"]
 | 
			
		||||
  - repo: https://github.com/fabasoad/pre-commit-grype
 | 
			
		||||
    rev: v0.4.0
 | 
			
		||||
    rev: v0.6.1
 | 
			
		||||
    hooks:
 | 
			
		||||
      - id: grype-dir
 | 
			
		||||
        args:
 | 
			
		||||
@ -24,7 +36,7 @@ repos:
 | 
			
		||||
        stages: ["push"]
 | 
			
		||||
  # Markdown
 | 
			
		||||
  - repo: https://github.com/igorshubovych/markdownlint-cli
 | 
			
		||||
    rev: v0.41.0
 | 
			
		||||
    rev: v0.42.0
 | 
			
		||||
    hooks:
 | 
			
		||||
      - id: markdownlint-fix
 | 
			
		||||
  # Shell
 | 
			
		||||
@ -42,18 +54,14 @@ repos:
 | 
			
		||||
        stages: ["push"]
 | 
			
		||||
  # GitHub Actions
 | 
			
		||||
  - repo: https://github.com/rhysd/actionlint
 | 
			
		||||
    rev: v1.7.1
 | 
			
		||||
    rev: v1.7.3
 | 
			
		||||
    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: v4.6.0
 | 
			
		||||
    rev: v5.0.0
 | 
			
		||||
    hooks:
 | 
			
		||||
      - id: check-executables-have-shebangs
 | 
			
		||||
        stages: ["commit"]
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@ action:
 | 
			
		||||
- uses: fabasoad/setup-mark-action@v1
 | 
			
		||||
  with:
 | 
			
		||||
    # (Optional) mark version. Defaults to "latest".
 | 
			
		||||
    version: "9.11.1"
 | 
			
		||||
    version: "11.2.0"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Outputs
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								action.yml
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								action.yml
									
									
									
									
									
								
							@ -10,12 +10,23 @@ 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 }}"
 | 
			
		||||
      run: ./install-mark.sh "${INPUT_VERSION}"
 | 
			
		||||
        INPUT_URL_PREFIX: "${{ inputs.url_prefix }}"
 | 
			
		||||
      run: ./install-mark.sh "${INPUT_VERSION}" "${INPUT_URL_PREFIX}"
 | 
			
		||||
      shell: sh
 | 
			
		||||
      working-directory: ${{ github.action_path }}/src
 | 
			
		||||
 | 
			
		||||
@ -1,52 +1,58 @@
 | 
			
		||||
#!/usr/bin/env sh
 | 
			
		||||
 | 
			
		||||
mark_version="$1"
 | 
			
		||||
main() {
 | 
			
		||||
  mark_version="${1}"
 | 
			
		||||
  url_prefix="${2}"
 | 
			
		||||
 | 
			
		||||
# 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 "[setup-mark-action] %s level=info %s\n" "$(date +'%Y-%m-%d %T')" "${msg}"
 | 
			
		||||
    printf "[info] [setup-mark-action] %s %s\n" "$(date +'%Y-%m-%d %T')" "${msg}"
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
  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_prefix="${url_prefix}/releases"
 | 
			
		||||
  if [ "${mark_version}" = "latest" ]; then
 | 
			
		||||
    url_prefix="${url_prefix}/latest/download"
 | 
			
		||||
  else
 | 
			
		||||
    url_prefix="${url_prefix}/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"
 | 
			
		||||
  tar -xf "${tar_path}" -C "${bin_path}"
 | 
			
		||||
  rm -f "${tar_path}"
 | 
			
		||||
  echo "${bin_path}" >> "$GITHUB_PATH"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main "$@"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								src/validate-inputs.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								src/validate-inputs.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#!/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 "$@"
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user