Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CI #28

Merged
merged 9 commits into from
Nov 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/psalm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Psalm

on:
pull_request:
paths-ignore:
- 'docs/**'
- 'bin/**'
- 'resources/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- 'psalm.xml'

push:
paths-ignore:
- 'docs/**'
- 'bin/**'
- 'resources/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- 'psalm.xml'

jobs:
psalm:
name: Psalm Validation (PHP ${{ matrix.php }}, OS ${{ matrix.os }})
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
php: [8.2]
os: [ubuntu-latest]
steps:
- name: Set up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom

- name: Check Out Code
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache Dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: php-${{ matrix.php }}-${{ runner.os }}-composer-

- name: Install Composer Dependencies
run: composer install --prefer-dist --no-interaction

- name: Run Tests
run: vendor/bin/psalm
112 changes: 112 additions & 0 deletions .github/workflows/run-test-suite.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Unit

on:
workflow_call:
inputs:
test-suite:
required: true
type: string
fail-fast:
required: false
type: boolean
default: true
test-timeout:
required: false
type: number
default: 15

pull_request:
paths-ignore:
- 'docs/**'
- 'bin/**'
- 'resources/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- 'psalm.xml'

push:
paths-ignore:
- 'docs/**'
- 'bin/**'
- 'resources/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- 'psalm.xml'

jobs:
test:
name: (PHP ${{ matrix.php }}, ${{ matrix.os }}, ${{ matrix.dependencies }} deps
runs-on: ${{ matrix.os }}
timeout-minutes: ${{ matrix.timeout-minutes }}
env: { GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' }
strategy:
fail-fast: ${{ inputs.fail-fast }}
matrix:
php: [ 8.1, 8.2 ]
os: [ ubuntu-latest, windows-latest ]
dependencies: [ lowest , highest ]
timeout-minutes: [ '${{ inputs.test-timeout }}' ]
exclude:
- os: windows-latest
php: 8.2
include:
- os: ubuntu-latest
php: 8.3
dependencies: highest
timeout-minutes: 40
steps:
- name: Set Git To Use LF
run: |
git config --global core.autocrlf false
git config --global core.eol lf

- name: Setup PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer:v2
extensions: sockets, curl

- name: Check Out Code
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Validate composer.json and composer.lock
run: composer validate --strict

- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache Composer Dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: php-${{ matrix.php }}-${{ matrix.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
php-${{ matrix.php }}-${{ matrix.os }}-composer-

- name: Install lowest dependencies from composer.json
if: matrix.dependencies == 'lowest'
run: composer update --no-interaction --no-progress --prefer-lowest

- name: Validate lowest dependencies
if: matrix.dependencies == 'lowest'
env:
COMPOSER_POOL_OPTIMIZER: 0
run: vendor/bin/validate-prefer-lowest

- name: Install highest dependencies from composer.json
if: matrix.dependencies == 'highest'
run: composer update --no-interaction --no-progress

- name: Run tests
run: vendor/bin/phpunit --testsuite=${{ inputs.test-suite }} --testdox
65 changes: 65 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Security

on:
pull_request:
paths-ignore:
- 'docs/**'
- 'bin/**'
- 'resources/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- 'psalm.xml'

push:
paths-ignore:
- 'docs/**'
- 'bin/**'
- 'resources/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- 'psalm.xml'

jobs:
security:
name: Security Checks (PHP ${{ matrix.php }}, OS ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Note: This workflow requires only the LATEST version of PHP
php: [ 8.2 ]
os: [ ubuntu-latest ]
steps:
- name: Set up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, sockets, grpc, curl

- name: Check Out Code
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache Dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: php-${{ matrix.php }}-${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: php-${{ matrix.php }}-${{ runner.os }}-composer-

- name: Install Composer Dependencies
run: composer install --prefer-dist --no-interaction

- name: Verify
run: composer require --dev roave/security-advisories:dev-latest
11 changes: 11 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Testing

on: [push, pull_request]

jobs:
unit:
name: Unit Testing
uses: ./.github/workflows/run-test-suite.yml
with:
fail-fast: false
test-suite: Unit
Loading
Loading