Compare commits

..

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

11 changed files with 240 additions and 141 deletions

78
.github/labels.yml vendored Normal file
View File

@ -0,0 +1,78 @@
---
- name: "breaking-change"
color: ee0701
description: "A breaking change for existing users."
- name: "bugfix"
color: ee0701
description: "Inconsistencies or issues which will cause a problem for users or implementors."
- name: "documentation"
color: 0052cc
description: "Solely about the documentation of the project."
- name: "enhancement"
color: 1d76db
description: "Enhancement of the code, not introducing new features."
- name: "refactor"
color: 1d76db
description: "Improvement of existing code, not introducing new features."
- name: "performance"
color: 1d76db
description: "Improving performance, not introducing new features."
- name: "new-feature"
color: 0e8a16
description: "New features or options."
- name: "maintenance"
color: 2af79e
description: "Generic maintenance tasks."
- name: "ci"
color: 1d76db
description: "Work that improves the continue integration."
- name: "dependencies"
color: 1d76db
description: "Upgrade or downgrade of project dependencies."
- name: "in-progress"
color: fbca04
description: "Issue is currently being resolved by a developer."
- name: "stale"
color: fef2c0
description: "There has not been activity on this issue or PR for quite some time."
- name: "no-stale"
color: fef2c0
description: "This issue or PR is exempted from the stable bot."
- name: "security"
color: ee0701
description: "Marks a security issue that needs to be resolved asap."
- name: "incomplete"
color: fef2c0
description: "Marks a PR or issue that is missing information."
- name: "invalid"
color: fef2c0
description: "Marks a PR or issue that is missing information."
- name: "beginner-friendly"
color: 0e8a16
description: "Good first issue for people wanting to contribute to the project."
- name: "help-wanted"
color: 0e8a16
description: "We need some extra helping hands or expertise in order to resolve this."
- name: "priority-critical"
color: ee0701
description: "This should be dealt with ASAP. Not fixing this issue would be a serious error."
- name: "priority-high"
color: b60205
description: "After critical issues are fixed, these should be dealt with before any further issues."
- name: "priority-medium"
color: 0e8a16
description: "This issue may be useful, and needs some attention."
- name: "priority-low"
color: e4ea8a
description: "Nice addition, maybe... someday..."
- name: "major"
color: b60205
description: "This PR causes a major version bump in the version number."
- name: "minor"
color: 0e8a16
description: "This PR causes a minor version bump in the version number."

View File

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

View File

@ -7,6 +7,30 @@ on: # yamllint disable-line rule:truthy
- "v*.*.*" - "v*.*.*"
jobs: jobs:
github: create-release:
name: GitHub name: Create release
uses: fabasoad/reusable-workflows/.github/workflows/wf-github-release.yml@main runs-on: ubuntu-latest
steps:
- name: Checkout ${{ github.repository }}
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changelog
id: changelog
uses: simbo/changes-since-last-release-action@v1
- name: Create release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref }}
name: ${{ github.ref_name }}
token: ${{ secrets.GITHUB_TOKEN }}
body: |
# Changelog
${{ steps.changelog.outputs.log }}
draft: false
prerelease: false
- name: Bump tags
uses: fischerscode/tagger@v0
with:
prefix: v

View File

@ -7,10 +7,45 @@ on: # yamllint disable-line rule:truthy
branches: branches:
- main - main
defaults:
run:
shell: sh
jobs: jobs:
sast: code-scanning:
name: SAST name: Code scanning
permissions: runs-on: ubuntu-latest
contents: read steps:
security-events: write - name: Checkout ${{ github.repository }}
uses: fabasoad/reusable-workflows/.github/workflows/wf-security-sast.yml@main uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: "javascript"
- name: Perform CodeQL Analysis
id: codeql-analysis
uses: github/codeql-action/analyze@v3
- name: Upload to GHAS
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
category: "code-scanning"
sarif_file: "${{ steps.codeql-analysis.outputs.sarif-output }}"
directory-scanning:
name: Directory scanning
runs-on: ubuntu-latest
steps:
- name: Checkout ${{ github.repository }}
uses: actions/checkout@v4
- name: Scan current project
id: scan-directory
uses: anchore/scan-action@v3
with:
by-cve: "true"
path: "."
- name: Upload to GHAS
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
category: "directory-scanning"
sarif_file: "${{ steps.scan-directory.outputs.sarif }}"

View File

@ -1,13 +1,23 @@
--- ---
name: Labels name: Sync labels
on: # yamllint disable-line rule:truthy on: # yamllint disable-line rule:truthy
push: push:
branches: branches:
- main - main
workflow_dispatch: {} paths:
- .github/labels.yml
- .github/workflows/sync-labels.yml
workflow_dispatch:
jobs: jobs:
maintenance: sync-labels:
name: Maintenance name: Sync labels
uses: fabasoad/reusable-workflows/.github/workflows/wf-sync-labels.yml@main runs-on: ubuntu-latest
steps:
- name: Checkout ${{ github.repository }}
uses: actions/checkout@v4
- name: Run Label Syncer
uses: micnncim/action-label-syncer@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,11 +1,30 @@
--- ---
name: License name: Update license
on: # yamllint disable-line rule:truthy on: # yamllint disable-line rule:truthy
schedule: schedule:
- cron: "0 5 1 1 *" - cron: "0 5 1 1 *"
jobs: jobs:
maintenance: run:
name: Maintenance runs-on: ubuntu-latest
uses: fabasoad/reusable-workflows/.github/workflows/wf-update-license.yml@main steps:
- name: Checkout ${{ github.repository }}
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update LICENSE file
uses: FantasticFiasco/action-update-license-year@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
assignees: ${{ github.repository_owner }}
labels: enhancement
prTitle: Update license copyright year to {{currentYear}}
prBody: |
## Changelog
- Update license copyright year to {{currentYear}}
---
Powered by [FantasticFiasco/action-update-license-year](https://github.com/FantasticFiasco/action-update-license-year)

View File

@ -3,49 +3,22 @@ default_install_hook_types: ["pre-commit", "pre-push"]
default_stages: ["commit"] default_stages: ["commit"]
minimum_pre_commit_version: 2.18.0 minimum_pre_commit_version: 2.18.0
repos: 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 # Security
- repo: https://github.com/Yelp/detect-secrets - repo: https://github.com/Yelp/detect-secrets
rev: v1.5.0 rev: v1.4.0
hooks: hooks:
- id: detect-secrets - id: detect-secrets
stages: ["commit", "push"] stages: ["commit", "push"]
- repo: https://github.com/gitleaks/gitleaks - repo: https://github.com/gitleaks/gitleaks
rev: v8.21.0 rev: v8.18.2
hooks: hooks:
- id: gitleaks - id: gitleaks
stages: ["commit", "push"] stages: ["commit", "push"]
- repo: https://github.com/fabasoad/pre-commit-grype
rev: v0.6.1
hooks:
- id: grype-dir
args:
- --grype-args=--by-cve --fail-on=low
- --hook-args=--log-level debug
stages: ["push"]
# Markdown # Markdown
- repo: https://github.com/igorshubovych/markdownlint-cli - repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.42.0 rev: v0.39.0
hooks: hooks:
- id: markdownlint-fix - id: markdownlint-fix
# Shell
- repo: https://github.com/openstack/bashate
rev: 2.1.1
hooks:
- id: bashate
args: ["-i", "E003,E006"]
stages: ["commit"]
# Yaml # Yaml
- repo: https://github.com/adrienverge/yamllint - repo: https://github.com/adrienverge/yamllint
rev: v1.35.1 rev: v1.35.1
@ -54,14 +27,18 @@ repos:
stages: ["push"] stages: ["push"]
# GitHub Actions # GitHub Actions
- repo: https://github.com/rhysd/actionlint - repo: https://github.com/rhysd/actionlint
rev: v1.7.3 rev: v1.6.27
hooks: hooks:
- id: actionlint - id: actionlint
args: ["-pyflakes="] args: ["-pyflakes="]
stages: ["commit"] stages: ["push"]
# Other # 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 - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0 rev: v4.6.0
hooks: hooks:
- id: check-executables-have-shebangs - id: check-executables-have-shebangs
stages: ["commit"] stages: ["commit"]

View File

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

View File

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

View File

@ -1,21 +1,18 @@
#!/usr/bin/env sh #!/usr/bin/env sh
main() { mark_version="$1"
mark_version="${1}"
url_prefix="${2}"
# shellcheck disable=SC2039 # shellcheck disable=SC2039
if command -v mark >/dev/null 2>&1; then if command -v mark >/dev/null 2>&1; then
msg="$(mark --version) is already installed. Skipping installation." 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 exit 0
fi fi
url_prefix="${url_prefix}/releases"
if [ "${mark_version}" = "latest" ]; then if [ "${mark_version}" = "latest" ]; then
url_prefix="${url_prefix}/latest/download" url_prefix="https://github.com/kovetskiy/mark/releases/latest/download"
else else
url_prefix="${url_prefix}/download/${mark_version}" url_prefix="https://github.com/kovetskiy/mark/releases/download/${mark_version}"
fi fi
url="" url=""
@ -53,6 +50,3 @@ main() {
tar -xf "${tar_path}" -C "${bin_path}" tar -xf "${tar_path}" -C "${bin_path}"
rm -f "${tar_path}" rm -f "${tar_path}"
echo "${bin_path}" >> "$GITHUB_PATH" echo "${bin_path}" >> "$GITHUB_PATH"
}
main "$@"

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 "$@"