Skip to content

Commit

Permalink
Bump to PHP8.2+
Browse files Browse the repository at this point in the history
Also includes:
* QA set up bump
* Updated Makefile
* Updated test utilities
* Updated to new mocking package
* Centralized shared workflows

Refs: #168
  • Loading branch information
WyriHaximus committed May 18, 2024
1 parent 90d4d1c commit eb4606d
Show file tree
Hide file tree
Showing 73 changed files with 7,189 additions and 4,954 deletions.
1 change: 0 additions & 1 deletion .coveralls.yml

This file was deleted.

17 changes: 0 additions & 17 deletions .dunitconfig

This file was deleted.

23 changes: 23 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true

[*.json]
indent_size = 2

[*.yml]
indent_size = 2

[*.yaml]
indent_size = 2

[Makefile]
indent_style = tab

[*.neon]
indent_style = tab
23 changes: 15 additions & 8 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
# Ignoring files for distribution archives
examples/ export-ignore
# Ignoring files for distribution archieves
.github/ export-ignore
etc/ export-ignore
tests/ export-ignore
.travis.yml export-ignore
.gitignore export-ignore
var/ export-ignore
.devcontainer.json export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.coveralls.yml export-ignore
.php_cs export-ignore
.scrutinizer.yml export-ignore
phpunit.xml.dist export-ignore
.gitignore export-ignore
CONTRIBUTING.md export-ignore
composer.lock export-ignore
infection.json.dist export-ignore
Makefile export-ignore
README.md export-ignore

# Diffing
*.php diff=php
225 changes: 116 additions & 109 deletions .github/settings.yml
Original file line number Diff line number Diff line change
@@ -1,115 +1,122 @@
repository:
private: false
has_issues: true
has_wiki: false
has_downloads: true
default_branch: master
allow_squash_merge: false
allow_merge_commit: true
allow_rebase_merge: false
private: false
has_issues: true
has_wiki: false
has_downloads: true
default_branch: master
allow_squash_merge: false
allow_merge_commit: true
allow_rebase_merge: false

# Labels: define labels for Issues and Pull Requests
labels:
- name: "Dependencies 📦"
color: 0025ff
description: "Pull requests that update a dependency file"
- name: "Image 🖼"
color: 00ffff
- name: "HTML 👷‍♀️"
color: ffffff
- name: "CSS 👩‍🎨"
color: b3b3b3
- name: "JavaScript 🦏"
color: ffff00
- name: "Go 🐹"
color: 00ADD8
- name: "JSON 👨‍💼"
color: 00ADD8
- name: "NEON 🦹‍♂️"
color: CE3262
- name: "MarkDown 📝"
color: 000000
- name: "YAML 🍄"
color: ff1aff
- name: "Templates 🌲"
color: 009933
- name: "Helm ☸"
color: 091C84
- name: "Tests 🧪"
color: ffe6e6
- name: "Source 🔮"
color: e6ffe6
- name: "Configuration ⚙"
color: b3b3cc
- name: "PHP 🐘"
color: 8892BF
description: "Hypertext Pre Processor"
- name: "Docker 🐳"
color: 0db7ed
description: "Pull requests that relate to Docker"
- name: "CI 🚧"
color: ffff00
- name: "Feature 🏗"
color: 66ff99
- name: "Documentation 📚"
color: 6666ff
- name: "Security 🕵️‍♀️"
color: ff0000
- name: "Hacktoberfest 🎃"
color: 152347
- name: "Bug 🐞"
color: d73a4a
description: "Something isn't working"
oldname: bug
- name: "Duplicate ♊"
color: cfd3d7
description: "This issue or pull request already exists"
oldname: duplicate
- name: "Enhancement ✨"
color: a2eeef
description: "New feature or request"
oldname: enhancement
- name: "Good First Issue"
color: 7057ff
description: "Good for newcomers"
oldname: "good first issue"
- name: "Help Wanted"
color: 008672
description: "Extra attention is needed"
oldname: "help wanted"
- name: Invalid
color: e4e669
description: "This doesn't seem right"
oldname: invalid
- name: "Question ❓"
color: d876e3
description: "Further information is requested"
oldname: question
- name: "Will not be fixed 🛑"
color: ffffff
description: "This will not be worked on"
oldname: wontfix
- name: "Sponsor Request ❤️"
color: fedbf0
description: "Issue/PR opened by sponsor"
- name: "Deprecations 👋"
color: ff7700
- name: "Dependabot 🤖"
color: 0366d6
- name: "Dependencies 📦"
color: 0025ff
description: "Pull requests that update a dependency file"
- name: "Image 🖼"
color: 00ffff
- name: "HTML 👷‍♀️"
color: ffffff
- name: "CSS 👩‍🎨"
color: b3b3b3
- name: "JavaScript 🦏"
color: ffff00
- name: "Go 🐹"
color: 00ADD8
- name: "JSON 👨‍💼"
color: 00ADD8
- name: "NEON 🦹‍♂️"
color: CE3262
- name: "MarkDown 📝"
color: 000000
- name: "YAML 🍄"
color: ff1aff
- name: "Templates 🌲"
color: 009933
- name: "Helm ☸"
color: 091C84
- name: "Tests 🧪"
color: ffe6e6
- name: "Source 🔮"
color: e6ffe6
- name: "Configuration ⚙"
color: b3b3cc
- name: "PHP 🐘"
color: 8892BF
description: "Hypertext Pre Processor"
- name: "Docker 🐳"
color: 0db7ed
description: "Pull requests that relate to Docker"
- name: "CI 🚧"
color: ffff00
- name: "Feature 🏗"
color: 66ff99
- name: "Documentation 📚"
color: 6666ff
- name: "Security 🕵️‍♀️"
color: ff0000
- name: "Hacktoberfest 🎃"
color: 152347
- name: "Bug 🐞"
color: d73a4a
description: "Something isn't working"
oldname: bug
- name: "Duplicate ♊"
color: cfd3d7
description: "This issue or pull request already exists"
oldname: duplicate
- name: "Enhancement ✨"
color: a2eeef
description: "New feature or request"
oldname: enhancement
- name: "Good First Issue"
color: 7057ff
description: "Good for newcomers"
oldname: "good first issue"
- name: "Help Wanted"
color: 008672
description: "Extra attention is needed"
oldname: "help wanted"
- name: Invalid
color: e4e669
description: "This doesn't seem right"
oldname: invalid
- name: "Question ❓"
color: d876e3
description: "Further information is requested"
oldname: question
- name: "Will not be fixed 🛑"
color: ffffff
description: "This will not be worked on"
oldname: wontfix
- name: "Sponsor Request ❤️"
color: fedbf0
description: "Issue/PR opened by sponsor"

branches:
- name: master
protection:
required_pull_request_reviews:
required_approving_review_count: 1
dismiss_stale_reviews: true
require_code_owner_reviews: true
# Required. Require status checks to pass before merging. Set to null to disable
required_status_checks:
# Required. Require branches to be up to date before merging.
strict: true
# Required. The list of status checks to require in order to merge into this branch
contexts: []
# Required. Enforce all configured restrictions for administrators. Set to true to enforce required status checks for repository administrators. Set to null to disable.
enforce_admins: true
# Required. Restrict who can push to this branch. Team and user restrictions are only available for organization-owned repositories. Set to null to disable.
restrictions:
apps: []
users: []
teams: []
- name: master
protection:
required_pull_request_reviews:
required_approving_review_count: 1
dismiss_stale_reviews: true
require_code_owner_reviews: true
# Required. Require status checks to pass before merging. Set to null to disable
required_status_checks:
# Required. Require branches to be up to date before merging.
strict: true
# Required. The list of status checks to require in order to merge into this branch
contexts: [
"Milestone Check",
"✔️"
]
# Required. Enforce all configured restrictions for administrators. Set to true to enforce required status checks for repository administrators. Set to null to disable.
enforce_admins: true
# Required. Restrict who can push to this branch. Team and user restrictions are only available for organization-owned repositories. Set to null to disable.
restrictions:
apps: []
users: []
teams: []
78 changes: 12 additions & 66 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,71 +1,17 @@
name: Continuous Integration
on:
push:
branches:
- 'main'
- 'master'
- 'refs/heads/v[0-9]+.[0-9]+.[0-9]+'
pull_request:
## This workflow needs the `pull-request` permissions to work for the package diffing
## Refs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions
permissions:
pull-requests: write
contents: read
jobs:
generate-versions-strategy:
name: Generate Versions
runs-on: ubuntu-latest
outputs:
version: ${{ steps.generate-versions-strategy.outputs.version }}
steps:
- uses: actions/checkout@v1
- id: generate-versions-strategy
uses: WyriHaximus/github-action-composer-php-versions-in-range@v1
composer-install:
needs:
- generate-versions-strategy
strategy:
matrix:
php: ${{ fromJson(needs.generate-versions-strategy.outputs.version) }}
composer: [lowest, current, highest]
runs-on: ubuntu-latest
container:
image: wyrihaximusnet/php:${{ matrix.php }}-nts-buster-dev-root
steps:
- uses: actions/checkout@v1
- name: Cache composer packages
uses: actions/cache@v1
with:
path: ./vendor/
key: ${{ matrix.composer }}-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
- name: Install Dependencies
run: composer update --prefer-lowest --no-progress --ansi --no-interaction --prefer-dist
if: matrix.composer == 'lowest'
- name: Install Dependencies
run: composer install --ansi --no-progress --no-interaction --prefer-dist
if: matrix.composer == 'current'
- name: Install Dependencies
run: composer update --ansi --no-progress --no-interaction --prefer-dist
if: matrix.composer == 'highest'
qa:
needs:
- composer-install
- generate-versions-strategy
strategy:
fail-fast: false
matrix:
php: ${{ fromJson(needs.generate-versions-strategy.outputs.version) }}
composer: [lowest, current, highest]
qa: [lint, cs, stan, psalm, unit, infection, composer-require-checker, composer-unused]
runs-on: ubuntu-latest
container:
image: wyrihaximusnet/php:${{ matrix.php }}-nts-buster-dev-root
steps:
- uses: actions/checkout@v1
- name: Cache composer packages
uses: actions/cache@v1
with:
path: ./vendor/
key: ${{ matrix.composer }}-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}

- name: Install Dependencies
run: (test -f vendor && true ) || composer update --prefer-lowest --no-progress --ansi --no-interaction --prefer-dist
if: matrix.composer == 'lowest'
- name: Install Dependencies
run: (test -f vendor && true ) || composer install --ansi --no-progress --no-interaction --prefer-dist
if: matrix.composer == 'current'
- name: Install Dependencies
run: (test -f vendor && true ) || composer update --ansi --no-progress --no-interaction --prefer-dist
if: matrix.composer == 'highest'
- run: make ${{ matrix.qa }}
ci:
name: Continuous Integration
uses: WyriHaximus/github-workflows/.github/workflows/package.yaml@main
Loading

0 comments on commit eb4606d

Please sign in to comment.