From 518233dc331b95b20de739942a7ad280cc005326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=20=D0=9B=D1=8F=D1=89=D1=83=D0=BA?= <40496434+prog-time@users.noreply.github.com> Date: Thu, 25 Jun 2026 13:40:53 +0300 Subject: [PATCH 1/3] issues-37|add Pint linter snippet --- CI/linters/pint.yml | 41 +++++++++++++++++++++++++++++++++++ scripts/CI/linters/pint.yml | 22 +++++++++++++++++++ scripts/shell/linters/pint.sh | 20 +++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 CI/linters/pint.yml create mode 100644 scripts/CI/linters/pint.yml create mode 100644 scripts/shell/linters/pint.sh diff --git a/CI/linters/pint.yml b/CI/linters/pint.yml new file mode 100644 index 0000000..ab8fd42 --- /dev/null +++ b/CI/linters/pint.yml @@ -0,0 +1,41 @@ +pint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: "8.2" + + - name: Cache Composer + uses: actions/cache@v4 + with: + path: vendor + key: composer-${{ hashFiles('composer.lock') }} + restore-keys: composer- + + - name: Install dependencies + run: composer install --no-interaction --prefer-dist + + - name: Run pint + run: | + set -euo pipefail + + if [[ -x "vendor/bin/pint" ]]; then + PINT="vendor/bin/pint" + elif command -v pint &> /dev/null; then + PINT="pint" + else + echo "::error::laravel/pint not found (run 'composer require --dev laravel/pint')" + exit 1 + fi + + echo "ℹ️ Running Pint in check mode..." + + if "$PINT" --test; then + echo "✅ pint passed" + else + echo "❌ pint found style issues" + exit 1 + fi diff --git a/scripts/CI/linters/pint.yml b/scripts/CI/linters/pint.yml new file mode 100644 index 0000000..f6c26b0 --- /dev/null +++ b/scripts/CI/linters/pint.yml @@ -0,0 +1,22 @@ +pint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: "8.2" + + - name: Cache Composer + uses: actions/cache@v4 + with: + path: vendor + key: composer-${{ hashFiles('composer.lock') }} + restore-keys: composer- + + - name: Install dependencies + run: composer install --no-interaction --prefer-dist + + - name: Run pint + run: bash scripts/shell/linters/pint.sh diff --git a/scripts/shell/linters/pint.sh b/scripts/shell/linters/pint.sh new file mode 100644 index 0000000..30bf96d --- /dev/null +++ b/scripts/shell/linters/pint.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ -x "vendor/bin/pint" ]]; then + PINT="vendor/bin/pint" +elif command -v pint &> /dev/null; then + PINT="pint" +else + echo "::error::laravel/pint not found (run 'composer require --dev laravel/pint')" + exit 1 +fi + +echo "ℹ️ Running Pint in check mode..." + +if "$PINT" --test; then + echo "✅ pint passed" +else + echo "❌ pint found style issues" + exit 1 +fi From 6c395048c0f3e72ddad9df704bf2c344d29d0255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=20=D0=9B=D1=8F=D1=89=D1=83=D0=BA?= <40496434+prog-time@users.noreply.github.com> Date: Thu, 25 Jun 2026 13:40:53 +0300 Subject: [PATCH 2/3] issues-37|add BATS tests for Pint --- tests/linters/pint.bats | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/linters/pint.bats diff --git a/tests/linters/pint.bats b/tests/linters/pint.bats new file mode 100644 index 0000000..c338677 --- /dev/null +++ b/tests/linters/pint.bats @@ -0,0 +1,43 @@ +#!/usr/bin/env bats + +load "../helpers/common" + +SCRIPT="$BATS_TEST_DIRNAME/../../scripts/shell/linters/pint.sh" + +setup() { + setup_test_dir +} + +teardown() { + teardown_test_dir +} + +make_pint_stub() { + local exit_code="$1" + mkdir -p "$TEST_DIR/vendor/bin" + cat > "$TEST_DIR/vendor/bin/pint" < Date: Thu, 25 Jun 2026 13:40:53 +0300 Subject: [PATCH 3/3] issues-37|document Pint in README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a3c2c9..1240fa7 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ that projects compose into their own workflows. | markdownlint | linters | [CI/linters/markdownlint.yml](https://github.com/prog-time/workflows/blob/main/CI/linters/markdownlint.yml) | | mermaid-cli | linters | [CI/linters/mermaid.yml](https://github.com/prog-time/workflows/blob/main/CI/linters/mermaid.yml) | | phpcs | linters | [CI/linters/phpcs.yml](https://github.com/prog-time/workflows/blob/main/CI/linters/phpcs.yml) | +| Pint | linters | [CI/linters/pint.yml](https://github.com/prog-time/workflows/blob/main/CI/linters/pint.yml) | | RuboCop | linters | [CI/linters/rubocop.yml](https://github.com/prog-time/workflows/blob/main/CI/linters/rubocop.yml) | | Ruff | linters | [CI/linters/ruff.yml](https://github.com/prog-time/workflows/blob/main/CI/linters/ruff.yml) | | ShellCheck | linters | [CI/linters/shellcheck.yml](https://github.com/prog-time/workflows/blob/main/CI/linters/shellcheck.yml) |