name: CI on: push: branches: - 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: matrix: distro: ['rockylinux'] el: [9] php: [0, '8.2', '8.3', 'remi-8.0', 'remi-8.1', 'remi-8.2', 'remi-8.3', 'remi-8.4', 'remi-8.5'] container: image: ${{ matrix.distro }}:${{ matrix.el }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup PHP module if: ${{ matrix.php }} run: | dnf install -y "https://rpms.remirepo.net/enterprise/remi-release-${{ matrix.el }}.rpm" dnf module enable -y "php:${{ matrix.php }}" - name: Install PHP run: | dnf install -y "php" "php-devel" "libxcrypt-devel" - name: Show PHP version run: php -v - name: Make php-xpass run: | phpize ./configure make -j"$(nproc)" - name: Test php-xpass env: TEST_PHP_ARGS: '-q --show-diff' run: | make test Linux_EL10: runs-on: ubuntu-latest strategy: matrix: distro: ['almalinux'] el: [10] php: [0, 'remi-8.0', 'remi-8.1', 'remi-8.2', 'remi-8.3', 'remi-8.4', 'remi-8.5'] container: image: ${{ matrix.distro }}:${{ matrix.el }} steps: - name: Install gzip run: | dnf install -y "gzip" - name: Checkout uses: actions/checkout@v4 - name: Setup PHP module if: ${{ matrix.php }} run: | dnf install -y "https://rpms.remirepo.net/enterprise/remi-release-${{ matrix.el }}.rpm" dnf module enable -y "php:${{ matrix.php }}" - name: Install PHP run: | dnf install -y "php" "php-devel" "libxcrypt-devel" - name: Show PHP version run: php -v - name: Make php-xpass run: | phpize ./configure make -j"$(nproc)" - name: Test php-xpass env: TEST_PHP_ARGS: '-q --show-diff' run: | make test Linux_Fedora: runs-on: ubuntu-latest strategy: matrix: fedora: [43, 44] php: [0, 'remi-8.0', 'remi-8.1', 'remi-8.2', 'remi-8.3', 'remi-8.4', 'remi-8.5'] container: image: fedora:${{ matrix.fedora }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup PHP module if: ${{ matrix.php }} run: | dnf install -y "https://rpms.remirepo.net/fedora/remi-release-${{ matrix.fedora }}.rpm" dnf module enable -y "php:${{ matrix.php }}" - name: Install PHP run: | dnf install -y "php" "php-devel" "libxcrypt-devel" - name: Show PHP version run: php -v - name: Make php-xpass run: | phpize ./configure make -j"$(nproc)" - name: Test php-xpass env: TEST_PHP_ARGS: '-q --show-diff' run: | make test Linux_Debian: runs-on: ubuntu-latest strategy: matrix: php: ['8.0', '8.1', '8.2', '8.3'] ts: ['cli', 'zts'] container: image: php:${{ matrix.php }}-${{ matrix.ts }} steps: - name: Install build dependencies run: | apt-get update apt-get install -y "automake" "libtool" "libcrypt-dev" - name: Checkout uses: actions/checkout@v4 - name: Make xpass run: | phpize ./configure make -j"$(nproc)" - name: Test xpass 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 }}