Skip to content

Bump fast-uri from 3.1.3 to 3.1.4 (#281) #67

Bump fast-uri from 3.1.3 to 3.1.4 (#281)

Bump fast-uri from 3.1.3 to 3.1.4 (#281) #67

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
javascript:
name: JS & CSS (Node ${{ matrix.node }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: ['20', '22']
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ matrix.node }}
cache: npm
# Reproducible install from the committed lockfile — this is the check
# that guards against the transitive dependency drift consumers hit with
# `npm i`.
- run: npm ci
# Dogfooding the flat config over the repo is Node-independent, so run it
# once rather than on every matrix leg.
- name: Lint the repo with the flat config (dogfooding)
if: matrix.node == '22'
run: npm run lint-js
- name: Smoke tests (eslint-config + stylelint-config)
run: npm test
changeset-guard:
name: Changeset guard
# Only on PRs (a push to master has no base to diff against), and skip the
# changesets "Version Packages" PR, which intentionally removes changesets.
if: github.event_name == 'pull_request' && github.head_ref != 'changeset-release/master'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
# A change to a published package's manifest (version, dependencies,
# peers) is consumer-facing and must ship with a changeset. Catches the
# class of change Dependabot or a quick fix can miss — e.g. bumping a peer
# in packages/*/package.json without recording it (see the v7 alphas).
- name: Require a changeset when a published package's manifest changes
env:
BASE: ${{ github.base_ref }}
run: |
git fetch --no-tags origin "$BASE"
manifest_changed=$(git diff --name-only "origin/${BASE}...HEAD" \
| grep -E '^packages/[^/]+/package\.json$' || true)
# Only a newly ADDED changeset counts — editing an existing one does
# not version a new change (and in pre mode does not trigger a release).
changeset_added=$(git diff --name-status "origin/${BASE}...HEAD" \
| awk '$1 ~ /^A/ { print $2 }' \
| grep -E '^\.changeset/.+\.md$' | grep -vE '^\.changeset/README\.md$' || true)
if [ -n "$manifest_changed" ] && [ -z "$changeset_added" ]; then
echo "::error::A published package's package.json changed but this PR adds no changeset. Run 'npx changeset' (or 'npx changeset --empty' if there is genuinely no consumer impact)."
exit 1
fi
echo "Changeset guard OK."
php:
name: PHP ${{ matrix.php }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ['7.4', '8.0', '8.2', '8.4']
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
with:
php-version: ${{ matrix.php }}
- name: Cache Composer downloads
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/composer/files
key: composer-${{ matrix.php }}-${{ hashFiles('composer.json') }}
restore-keys: composer-${{ matrix.php }}-
# No composer.lock is committed (this is a library), so resolve fresh.
- name: Install Composer dependencies
run: composer update --no-progress --no-interaction --prefer-dist
- name: Smoke tests (Required + Required-Strict)
run: composer test