Skip to content

Commit

Permalink
Add optional workflow (#548)
Browse files Browse the repository at this point in the history
* Add optional workflow

* Add optional workflow
  • Loading branch information
crazywhalecc authored Sep 29, 2024
1 parent 5383cf7 commit b629634
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 11 deletions.
37 changes: 27 additions & 10 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,22 +111,39 @@ jobs:
run: |
vendor/bin/phpunit tests/ --no-coverage
define-matrix:
name: "Define Matrix"
runs-on: ubuntu-latest
outputs:
php: ${{ steps.gendef.outputs.php }}
os: ${{ steps.gendef.outputs.os }}
steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Setup PHP"
uses: shivammathur/setup-php@v2
with:
php-version: 8.2

- name: Define
id: gendef
run: |
PHP_VERSIONS=$(php src/globals/test-extensions.php php)
OS_VERSIONS=$(php src/globals/test-extensions.php os)
echo 'php='"$PHP_VERSIONS" >> "$GITHUB_OUTPUT"
echo 'os='"$OS_VERSIONS" >> "$GITHUB_OUTPUT"
build:
name: "Build PHP Test (PHP ${{ matrix.php }} ${{ matrix.os }})"
runs-on: ${{ matrix.os }}
needs: define-matrix
timeout-minutes: 120
strategy:
matrix:
php:
- "8.0"
- "8.1"
- "8.2"
- "8.3"
os:
- ubuntu-latest
- macos-13
- windows-latest
- macos-14
php: ${{ fromJSON(needs.define-matrix.outputs.php) }}
os: ${{ fromJSON(needs.define-matrix.outputs.os) }}
fail-fast: false
steps:
- name: "Checkout"
Expand Down
8 changes: 7 additions & 1 deletion src/globals/test-extensions.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@

// --------------------------------- edit area ---------------------------------

$test_php_version = ['8.3'];

$test_os = ['macos-13', 'macos-14', 'ubuntu-latest', 'windows-latest'];

$zts = false;

$no_strip = false;
Expand Down Expand Up @@ -58,7 +62,7 @@ function _getCombination(string $type = 'common'): string
}

if (!isset($argv[1])) {
exit("Please use 'extensions', 'cmd' or 'libs' as output type");
exit("Please use 'extensions', 'cmd', 'os', 'php' or 'libs' as output type");
}

$trim_value = "\r\n \t,";
Expand All @@ -73,6 +77,8 @@ function _getCombination(string $type = 'common'): string
}

echo match ($argv[1]) {
'os' => json_encode($test_os),
'php' => json_encode($test_php_version),
'extensions' => $final_extensions,
'libs' => $final_libs,
'libs_cmd' => ($final_libs === '' ? '' : (' --with-libs=' . $final_libs)),
Expand Down

0 comments on commit b629634

Please sign in to comment.