summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yaml')
-rw-r--r--.github/workflows/ci.yaml46
1 files changed, 45 insertions, 1 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 7dcbf25..e78ae08 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -2,9 +2,40 @@ name: CI
on:
push:
branches:
- - master
+ - master
+ tags:
+ - '*'
pull_request:
jobs:
+ Windows_Matrix:
+ runs-on: ubuntu-latest
+ outputs:
+ matrix: ${{ steps.extension-matrix.outputs.matrix }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Get Windows extension matrix
+ id: extension-matrix
+ uses: php/php-windows-builder/extension-matrix@v1
+
+ Windows:
+ name: Windows_${{ matrix.php-version }}_${{ matrix.arch }}_${{ matrix.ts }}
+ needs: Windows_Matrix
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix: ${{ fromJson(needs.Windows_Matrix.outputs.matrix) }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Build and test Windows extension
+ uses: php/php-windows-builder/extension@v1
+ with:
+ php-version: ${{ matrix.php-version }}
+ arch: ${{ matrix.arch }}
+ ts: ${{ matrix.ts }}
+ libs: libxcrypt
+ test-runner-args: -q --show-diff
Linux_EL9:
runs-on: ubuntu-latest
strategy:
@@ -127,3 +158,16 @@ jobs:
env:
TEST_PHP_ARGS: '-q --show-diff'
run: make test
+ Windows_Release:
+ if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
+ needs: [Windows, Linux_EL9, Linux_EL10, Linux_Fedora, Linux_Debian]
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: write
+ steps:
+ - name: Upload Windows artifacts to release
+ uses: php/php-windows-builder/release@v1
+ with:
+ release: ${{ github.ref }}
+ token: ${{ secrets.GITHUB_TOKEN }}