Skip to content

Commit

Permalink
chore(ci): add automated tests and release
Browse files Browse the repository at this point in the history
  • Loading branch information
thislg committed May 22, 2024
1 parent 5fdf0cd commit 6c0b473
Show file tree
Hide file tree
Showing 6 changed files with 122 additions and 19 deletions.
38 changes: 38 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Release

on:
push:
branches:
- "master"

env:
PHP_EXTENSIONS: "zip"
PHP_VERSION: "8.3"

jobs:
release:
runs-on: ubuntu-latest

permissions:
contents: write
pull-requests: write

if: github.ref == 'refs/heads/master'

steps:
- uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: "${{ env.PHP_VERSION }}"
extensions: "${{ env.PHP_EXTENSIONS }}"
tools: humbug/box

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

- uses: google-github-actions/release-please-action@v4
id: create_release
with:
target-branch: master
42 changes: 42 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Tests

on:
push:
branches: ["master"]
pull_request:
branches: ["*"]

permissions:
contents: read

jobs:
tests:

strategy:
matrix:
php_version: ["7.4", "8.0", "8.1", "8.2", "8.3"]

runs-on: ubuntu-latest
container:
image: "lephare/php:${{ matrix.php_version }}"
env:
XDEBUG_MODE: coverage

steps:
- uses: actions/checkout@v4

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

- name: Install dependencies (PHP ${{ matrix.php_version }})
run: |
composer config --global cache-dir .composer
composer install --prefer-dist --no-interaction --no-progress
- name: Coding Style (PHP ${{ matrix.php_version }})
run: |
composer run-script lint:ci
composer run-script analyse
- name: Unit Tests (PHP ${{ matrix.php_version }})
run: composer run-script test:ci
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "2.1.0"
}
9 changes: 9 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,20 @@
"php-mock/php-mock-prophecy": "^0.1.1",
"phpoffice/phpspreadsheet": "^1.19",
"phpspec/prophecy": "^1.10",
"phpspec/prophecy-phpunit": "^2.2",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^1.4",
"phpunit/phpunit": "^9.6",
"symfony/phpunit-bridge": "^5.4|^6.0|^7.0"
},
"scripts": {
"analyse": "./vendor/bin/phpstan analyse --no-progress",
"lint": "./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php --dry-run",
"lint:ci": "@lint:fix --using-cache=no --dry-run",
"lint:fix": "./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php",
"test:ci": "@test --colors=never --coverage-text",
"test": "./vendor/bin/phpunit"
},
"suggest": {
"phpoffice/phpspreadsheet": "Import XLS files"
},
Expand Down
36 changes: 17 additions & 19 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>

<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="vendor/autoload.php" failOnRisky="true" failOnWarning="true">
<testsuites>
<testsuite name="Import Test Suite">
<directory>./Tests/</directory>
</testsuite>
</testsuites>

<filter>
<whitelist>
<directory>./</directory>
<exclude>
<directory suffix=".dist.php">./</directory>
<directory>./Resources</directory>
<directory>./Tests</directory>
<directory>./vendor</directory>
</exclude>
</whitelist>
</filter>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="vendor/autoload.php" failOnRisky="true" failOnWarning="true">
<coverage>
<include>
<directory>./</directory>
</include>
<exclude>
<directory suffix=".dist.php">./</directory>
<directory>./Resources</directory>
<directory>./Tests</directory>
<directory>./vendor</directory>
</exclude>
</coverage>
<testsuites>
<testsuite name="Import Test Suite">
<directory>./Tests/</directory>
</testsuite>
</testsuites>
</phpunit>
13 changes: 13 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"release-type": "php",
"include-component-in-tag": false,
"packages": {
".": {
"changelog-path": "CHANGELOG.md",
"draft": true,
"package-name": "release-please-action",
"release-type": "php"
}
}
}

0 comments on commit 6c0b473

Please sign in to comment.