Simplified the extension by using a map structure to cache settings #86
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| permissions: | |
| contents: read | |
| defaults: | |
| run: | |
| working-directory: ext | |
| jobs: | |
| non-windows: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest, macos-latest ] | |
| php: [ '8.1', '8.2', '8.3', '8.4' ] | |
| ts: [ 'ts', 'nts' ] | |
| exclude: | |
| - os: macos-latest | |
| ts: ts | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| env: | |
| phpts: ${{ matrix.ts }} | |
| - name: Build | |
| run: | | |
| phpize | |
| ./configure | |
| make | |
| - name: Test | |
| env: | |
| TEST_PHP_ARGS: "-q" #do not try to submit failures | |
| run: make test TESTS=--show-diff | |
| windows: | |
| runs-on: windows-2022 | |
| continue-on-error: false | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: [ '8.1', '8.2', '8.3', '8.4' ] | |
| ts: [ 'ts', 'nts' ] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 | |
| - name: Install PHP ${{ matrix.php }}-${{ matrix.ts }} | |
| id: setup-php-sdk | |
| uses: php/setup-php-sdk@e2ce1c294f272ed93e8083f14649f5adadf93788 # v0.12 | |
| with: | |
| version: ${{ matrix.php }} | |
| arch: x64 | |
| ts: ${{ matrix.ts }} | |
| - name: Install dependencies | |
| uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 | |
| with: | |
| arch: x64 | |
| toolset: ${{ steps.setup-php-sdk.outputs.toolset }} | |
| - name: build | |
| run: | | |
| phpize | |
| ./configure --enable-apm_ext --with-prefix=${{ steps.setup-php-sdk.outputs.prefix }} | |
| nmake | |
| - name: Test | |
| env: | |
| TEST_PHP_ARGS: "-q" | |
| run: nmake test TESTS=--show-diff | |
| - name: Get Compiler Version + Build Name | |
| shell: bash | |
| run: | | |
| case "$VisualStudioVersion" in | |
| 16.*) COMPILER="vs16";; | |
| 17.*) COMPILER="vs17";; | |
| *) echo "Unknown MSVC version: $VisualStudioVersion"; exit 1;; | |
| esac | |
| echo "Detected Compiler: $COMPILER" | |
| SAFE_REF_NAME="${GITHUB_REF_NAME//\//-}" | |
| BUILD_NAME="php_apm_ext-${SAFE_REF_NAME}-${{matrix.php}}-${{matrix.ts}}-$COMPILER-x86_64" | |
| echo "Build Name: $BUILD_NAME" | |
| echo "BUILD_NAME=$BUILD_NAME" >> $GITHUB_ENV | |
| - name: Rename and copy binaries | |
| run: | | |
| md binaries\${{env.BUILD_NAME}} | |
| $file = Get-ChildItem -Path x64 -Recurse -Filter php_apm_ext.dll | |
| Copy-Item -Path $file.FullName -Destination "binaries\${{env.BUILD_NAME}}\${{env.BUILD_NAME}}.dll" | |
| - name: Find | |
| run: | | |
| Get-ChildItem -Path binaries -Recurse -Force | ForEach-Object { $_.FullName } | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
| with: | |
| name: ${{env.BUILD_NAME}} | |
| path: ext\binaries\${{env.BUILD_NAME}}\${{env.BUILD_NAME}}.dll | |
| if-no-files-found: error | |
| release-if-tag: | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| needs: [non-windows, windows] | |
| permissions: | |
| contents: write # required for creating releases | |
| continue-on-error: false | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 | |
| - name: download-artifacts | |
| uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 | |
| with: | |
| path: ext/artifacts | |
| - name: zip | |
| run: | | |
| cd artifacts | |
| find . -maxdepth 1 -type d -exec zip -jr {}.zip {} \; | |
| - name: Release | |
| uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe # v2 | |
| with: | |
| generate_release_notes: true | |
| draft: true | |
| files: "ext/artifacts/*.zip" |