{"id":20275537,"url":"https://github.com/workofstan/seablast-actions","last_synced_at":"2026-03-19T15:02:55.009Z","repository":{"id":237331186,"uuid":"794309726","full_name":"WorkOfStan/seablast-actions","owner":"WorkOfStan","description":"This curated collection of prefabricated GitHub Actions is designed to supercharge your PHP projects with reusable workflows. Streamline your development process and ensure consistent build, test, and deployment practices across all your PHP applications.","archived":false,"fork":false,"pushed_at":"2026-02-28T21:59:21.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-05T09:52:46.330Z","etag":null,"topics":["automation","continuous-integration","github-actions"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WorkOfStan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-30T21:44:47.000Z","updated_at":"2026-02-14T09:43:28.000Z","dependencies_parsed_at":"2024-04-30T22:40:22.863Z","dependency_job_id":"ef8ec6b1-b6f8-4e08-a903-cf41adb4e5da","html_url":"https://github.com/WorkOfStan/seablast-actions","commit_stats":null,"previous_names":["workofstan/seablast-actions"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/WorkOfStan/seablast-actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WorkOfStan%2Fseablast-actions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WorkOfStan%2Fseablast-actions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WorkOfStan%2Fseablast-actions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WorkOfStan%2Fseablast-actions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WorkOfStan","download_url":"https://codeload.github.com/WorkOfStan/seablast-actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WorkOfStan%2Fseablast-actions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30225384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T17:00:40.062Z","status":"ssl_error","status_checked_at":"2026-03-07T17:00:39.026Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","continuous-integration","github-actions"],"created_at":"2024-11-14T13:09:46.049Z","updated_at":"2026-03-07T18:00:33.451Z","avatar_url":"https://github.com/WorkOfStan.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# seablast-actions\n\nThis curated collection of prefabricated GitHub Actions is designed to supercharge your PHP projects with reusable workflows.\nStreamline your development process and ensure consistent build, test, and deployment practices across all your PHP applications.\n\nSupports: \"php\": \"5.6 || ^7.0 || ^8.0\"\n\n## Example\n\nSee \u003chttps://github.com/WorkOfStan/seablast-dist/tree/main/.github/workflows\u003e for an actual example.\n\nNote that there are two ways to chain jobs (as typically you want to lint a code only if it is actually working [not to waste computing time]).\nOne is to trigger workflows by running another workflow successfully first:\n\n```yaml\non:\n  workflow_run:\n    workflows:\n      - First Action\n    types:\n      - completed\n```\n\nbut as this condition works **ONLY** on the default branch, and typically you need to run workflows on dev branches to make sure the code is working and well formatted,\nthere's the second way. Chaining jobs within a single workflow by using `needs` command.\nSee \u003chttps://github.com/WorkOfStan/seablast-dist/blob/main/.github/workflows/polish-the-code.yml\u003e for an actual example.\n\n## Test composer dependencies, PHPUnit tests (incl. database) and PHPStan check\n\n```yml\njobs:\n  # Note: https://docs.github.com/en/actions/using-workflows/reusing-workflows The strategy property is not supported in any job that calls a reusable workflow.\n  call-workflow:\n    uses: WorkOfStan/seablast-actions/.github/workflows/php-composer-dependencies-reusable.yml@main\n    with:\n      # REQUIRED (JSON string)\n      php-version: '[\"7.2\", \"7.3\", \"7.4\"]'\n      # OPTIONAL: path with the default database configuration\n      phinx-config: \"phinx.dist.yml\"\n      # OPTIONAL: path where the app expects the local database configuration\n      phinxlocal-config: \"phinx.yml\"\n      # OPTIONAL: path to phpdist-config specimen which is used to create the actual phplocal-config\n      phpdist-config: \"./conf/app.conf.dist.php\"\n      # OPTIONAL: path where the app code is looking for the local app configuration\n      phplocal-config: \"./conf/app.conf.local.php\"\n      # OPTIONAL: runner specification\n      runs-on: \"ubuntu-latest\"\n```\n\nPHPUnit tests fire up only if `conf/phpunit-github.xml` is present. (This configuration may be different from the usual `./phpunit.xml`.)\n\n### Caching Mechanism\n\nTo optimize execution time, the `vendor` folder is cached, allowing dependencies to be reused across workflow runs. The cache key is generated based on:\n\n- `composer.json` – to track dependency changes.\n- The runner's OS and PHP version – to account for environment-specific variations.\n\nThis approach enables cache sharing across branches. However, if the code in the referenced branch (e.g., `dev`) changes, it's recommended to **invalidate the cache** to ensure a fresh `vendor` folder is built from scratch.\n\nThe cache name (key) is `phps-${{ runner.os }}-PHP${{ matrix.php-version }}-vendor-${{ hashFiles('**/composer.json') }}` (because the vendor folder includes PHPStan)\n\n## Basic PHP linter\n\n```yml\njobs:\n  # Note: https://docs.github.com/en/actions/using-workflows/reusing-workflows The strategy property is not supported in any job that calls a reusable workflow.\n  call-workflow:\n    uses: WorkOfStan/seablast-actions/.github/workflows/overtrue-phplint.yml@main\n    with:\n      # OPTIONAL runner specification\n      runs-on: \"ubuntu-latest\"\n```\n\n## [Super-Linter](https://github.com/super-linter/super-linter) of many formats\n\n```yml\njobs:\n  # Note: https://docs.github.com/en/actions/using-workflows/reusing-workflows The strategy property is not supported in any job that calls a reusable workflow.\n  call-workflow:\n    uses: WorkOfStan/seablast-actions/.github/workflows/linter.yml@main\n    with:\n      # OPTIONAL parameter for REGEX to exclude certain files, e.g. third-party code, from being linted\n      filter-regex-exclude: \".*/assets/third-party/.*\"\n      # OPTIONAL Change how much output the script will generate to the console. One of `ERROR`, `WARN`, `NOTICE`, `INFO` (default), or `DEBUG`.\n      log-level: \"DEBUG\"\n      # OPTIONAL runner specification\n      runs-on: \"ubuntu-latest\"\n      # OPTIONAL enable Biome validation\n      validate-biome: true\n      # OPTIONAL disable CSS validation, as it pushes for a modern CSS which might not be backward compatible\n      validate-css: false\n      # OPTIONAL enable SPELL_CODESPELL validation. It treats words from other languages than English as typos. Creating ignore/allowlist is impractical. Use with caution.\n      validate-spell-codespell: true\n```\n\nWith the release of [Super-Linter](https://github.com/super-linter/super-linter) 7.0.0, [Prettier](https://prettier.io/) has become the standard for many file formats, ensuring consistent code styling across your projects.\nEmbrace this change and keep your codebase looking sharp by integrating Prettier directly into your workflow: [prettier-fix](https://github.com/marketplace/actions/prettier-fix).\n\nNote 1: It's not possible to select super-linter version through a parameter, as the `uses` field expects a static string.\n\nNote 2: slim [variant](https://github.com/super-linter/super-linter?tab=readme-ov-file#super-linter-variants) is used for sake of efficiency as these linters are not used in PHP anyway: Rustfmt, Rust Clippy, Azure Resource Manager Template Toolkit (arm-ttk), PSScriptAnalyzer, dotnet (.NET) commands and subcommands.\n\nNote 3: Many FIXes are applied automatically and their result can be downloaded as an artifact and then use locally with `git apply lint-fixes.patch`. If the change is in the `.github/workflows`, it can't be commited by a GitHub Action anyway.\n\nNote 4: any composer.json automatically temporarily renamed (and then renamed back) to prevent invoking composer within super-linter, as the environment PHP version (which might not be app relevant) is used and various libraries would be expected that are not part of super-linter environment.\n\nNote 5: Copy/paste detection with the default threshold 0% is too strict. Todo consider parametric JSCPD_CONFIG_FILE . So far: `VALIDATE_JSCPD: false`\n\nNote 6: You can either use your own zizmor.yaml or the GitHub Action auto-generates such [zizmor.yaml](.github/linters/zizmor.yaml) to disable unpinned-uses check. That allows referring to an action by version tag instead of exact hash, so that Dependabot can monitor and update versions automatically.\n\n## Automatic PHP Code Style improvements\n\nUse [PHPCS-Fix](https://github.com/WorkOfStan/phpcs-fix/blob/main/.github/workflows/phpcs-phpcbf.yml).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkofstan%2Fseablast-actions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkofstan%2Fseablast-actions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkofstan%2Fseablast-actions/lists"}