usamamuneerchaudhary/laravel-slipway
Laravel Slipway is a lightweight package that streamlines common Laravel workflows with simple configuration and an easy-to-use API. It is designed to fit into existing projects, helping teams move from setup to launch with less boilerplate and fewer manual steps.
Install the package as a dev dependency, publish its config, and inspect config/slipway.php first — that is where pipeline stages, steps, and presets are declared. Start with the smallest useful pipeline: a build-assets step using the default npm preset, then run the local CI script (./ci-local.sh --clean) to validate the generated workflow before pushing. For a first real use case, add a vite preset to build-assets and a sentry step immediately after it in the same stage if you upload source maps. If you use Pest, enable 'pest' => ['tia' => true], run php artisan slipway:tia, and commit the generated .github/workflows/tia-baseline.yml.
Keep pipeline steps ordered by stage. build-assets must run before sentry in the same stage so source maps exist when Sentry uploads them. Choose the build-assets preset explicitly: npm is the default, vite runs npx vite build unless you provide a script, and bun requires an exact version (for example 'bun' => '1.2.21') — Slipway installs Bun from GitHub Releases after checksum verification. For Pest TIA, enable tia and run php artisan slipway:tia; this appends pest()->tia()->locally()->baselined() to an existing tests/Pest.php, so create that file first. The pull-request test command remains a full suite; TIA is a local/baseline optimisation. Use slipway:pin to pin action versions, and remember 1.8 makes it read the TIA baseline workflow too. For reliable local runs, always use ./ci-local.sh --clean or slipway:test-pipeline --clean; both clone HEAD into a detached worktree so uncommitted files cannot produce a false pass. Add the Sentry step with org, project, and optional path/token; the upload sets --release from SENTRY_RELEASE or the CI commit SHA automatically.
--clean tests the committed tree only — stash or commit local changes before trusting a green run, and note that secrets still come from the project’s .env, not from the worktree. Removing tia from config does not delete an already committed .github/workflows/tia-baseline.yml; delete it manually. slipway:tia under Testbench writes into the package working directory and appends only to an existing Pest file — it ignores comments and unrelated ->tia( calls, so do not rely on it to create tests/Pest.php. If the Pest step uses --parallel, the TIA baseline uses --parallel too; setting tia.parallel when the Pest step is not parallel produces a compile warning. The vite preset without a script warns that it will run npx vite build — provide a script for custom builds. Bun must be an exact version, and GitHub Bun setup installs into $HOME/.bun/bin and appends it to $GITHUB_PATH, while container jobs keep the root /usr/local/bin install; cache keys use whichever lockfile exists (bun.lock or bun.lockb). If git worktree remove fails during --clean, Slipway prunes the worktree registration, and a dirty-tree warning is printed before the Docker check — read that warning before assuming the environment is clean.
How can I help you explore Laravel packages today?