Skip to content

Detect extensions in composer.lock #127

Detect extensions in composer.lock

Detect extensions in composer.lock #127

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- 'main'
pull_request:
jobs:
get-supported-php-versions:
name: Test Composer PHP versions in range Tag on ${{ matrix.os }} in ${{ matrix.workingDirectory }}
strategy:
fail-fast: false
matrix:
include:
- workingDirectory: "situations/another-working-directory/"
highestUpcoming: "5.6"
nightly: "5.6"
highest: "5.6"
lowest: "5.3"
extensions: "ast,pcov,xdebug"
requiredExtensions: "ast"
requiredDevExtensions: "pcov,xdebug"
os: ubuntu-latest
- workingDirectory: "situations/another-working-directory"
highestUpcoming: "5.6"
nightly: "5.6"
highest: "5.6"
lowest: "5.3"
extensions: "ast,pcov,xdebug"
requiredExtensions: "ast"
requiredDevExtensions: "pcov,xdebug"
os: ubuntu-latest
- workingDirectory: "situations/ext-parallel-composer.lock/"
highestUpcoming: "8.3"
nightly: "8.4"
highest: "8.3"
lowest: "8.2"
extensions: "parallel,pcov,xdebug"
requiredExtensions: "parallel"
requiredDevExtensions: "pcov,xdebug"
os: ubuntu-latest
os:
- ubuntu-latest
- windows-latest
- macos-latest
workingDirectory:
- ""
highestUpcoming:
- "8.3"
nightly:
- "8.4"
highest:
- "8.3"
lowest:
- "7.3"
extensions:
- "ast,pcov,xdebug"
requiredExtensions:
- "ast"
requiredDevExtensions:
- "pcov,xdebug"
outputs:
highest: ${{ steps.versionsinrange.outputs.highest }}
extensions: ${{ steps.versionsinrange.outputs.extensions }}
requiredExtensions: ${{ steps.versionsinrange.outputs.requiredExtensions }}
requiredDevExtensions: ${{ steps.versionsinrange.outputs.requiredDevExtensions }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: 'Composer PHP versions in range'
id: versionsinrange
uses: ./
with:
workingDirectory: ${{ matrix.workingDirectory }}
- run: |
echo "${{ steps.versionsinrange.outputs.version }}"
- name: 'Composer PHP versions in range including upcoming releases'
id: versionsinrangeincludingupcomingreleases
uses: ./
with:
upcomingReleases: true
workingDirectory: ${{ matrix.workingDirectory }}
- run: |
echo "${{ steps.versionsinrange.outputs.version }}"
- name: 'Composer PHP versions in range including nightly'
id: versionsinrangeincludingnightly
uses: ./
with:
nightly: true
workingDirectory: ${{ matrix.workingDirectory }}
- run: |
echo "${{ steps.versionsinrangeincludingnightly.outputs.version }}"
- name: 'Composer PHP versions in range including nightly and upcoming releases'
id: versionsinrangeincludingnightlyandupcomingreleases
uses: ./
with:
upcomingReleases: true
nightly: true
workingDirectory: ${{ matrix.workingDirectory }}
- run: |
echo "${{ steps.versionsinrangeincludingnightlyandupcomingreleases.outputs.version }}"
- name: "Assert Output: lowest"
uses: therussiankid92/gat@v1
with:
assertion: should.equal
expected: ${{ matrix.lowest }}
actual: ${{ steps.versionsinrange.outputs.lowest }}
- name: "Assert Output: highest"
uses: therussiankid92/gat@v1
with:
assertion: should.equal
expected: ${{ matrix.highest }}
actual: ${{ steps.versionsinrange.outputs.highest }}
- name: "Assert Output: highest (upcoming releases)"
uses: therussiankid92/gat@v1
with:
assertion: should.equal
expected: ${{ matrix.highestUpcoming }}
actual: ${{ steps.versionsinrangeincludingupcomingreleases.outputs.highest }}
- name: "Assert Output: highest (nightly)"
uses: therussiankid92/gat@v1
with:
assertion: should.equal
expected: ${{ matrix.nightly }}
actual: ${{ steps.versionsinrangeincludingnightly.outputs.highest }}
- name: "Assert Output: extensions"
uses: therussiankid92/gat@v1
with:
assertion: should.equal
expected: ${{ matrix.extensions }}
actual: ${{ join(fromJson(steps.versionsinrange.outputs.extensions), ',') }}
- name: "Assert Output: requiredExtensions"
uses: therussiankid92/gat@v1
with:
assertion: should.equal
expected: ${{ matrix.requiredExtensions }}
actual: ${{ join(fromJson(steps.versionsinrange.outputs.requiredExtensions), ',') }}
- name: "Assert Output: requiredDevExtensions"
uses: therussiankid92/gat@v1
with:
assertion: should.equal
expected: ${{ matrix.requiredDevExtensions }}
actual: ${{ join(fromJson(steps.versionsinrange.outputs.requiredDevExtensions), ',') }}
extensions:
name: Detected extensions on ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
needs:
- get-supported-php-versions
runs-on: ${{ matrix.os }}
steps:
- run: |
echo "All require extensions: ${{ needs.get-supported-php-versions.outputs.extensions }}"
echo "Require extensions: ${{ needs.get-supported-php-versions.outputs.requiredExtensions }}"
echo "Dev require extensions: ${{ needs.get-supported-php-versions.outputs.requiredDevExtensions }}"
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ needs.get-supported-php-versions.outputs.highest }}
tools: composer
coverage: none
extensions: ${{ join(fromJson(needs.get-supported-php-versions.outputs.extensions), ',') }}