summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yaml
blob: 7796d9ee74548ccd9eaa5176ee22c5557ee9c7e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: CI
on:
  push:
    branches:
        - master
  pull_request:
jobs:
  Linux_EL:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        distro: ['rockylinux']
        el: [8, 9]
        php: ['8.0', '8.1', '8.2', '8.3']
    container:
      image: ${{ matrix.distro }}:${{ matrix.el }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install PHP
        run: |
          dnf install -y "https://rpms.remirepo.net/enterprise/remi-release-${{ matrix.el }}.rpm"
          dnf config-manager --disable -y "epel" "remi-modular" "remi-safe"
          dnf --enablerepo=remi-modular module enable -y "php:remi-${{ matrix.php }}"
          dnf --enablerepo=epel,remi,remi-modular install -y "php" "php-devel"
      - name: Show PHP version
        run: php -v
      - name: Manually install libxcrypt 4.4.x (EL8 and earlier)
        if: ${{ matrix.el < 9 }}
        run: |
          dnf install -y "python3-pip" "perl-open" "git"
          pip3 install "passlib"
          git clone --depth=1 --branch="v4.4.36" "https://github.com/besser82/libxcrypt.git" "libxcrypt"
          cd "libxcrypt"
          ./autogen.sh
          ./configure --with-pkgconfigdir="/usr/lib64/pkgconfig" --libdir="/usr/lib64"
          make -j"$(nproc)"
          make install
      - 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: [39, 40, 41]
        php: ['8.0', '8.1', '8.2', '8.3']
    container:
      image: fedora:${{ matrix.fedora }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install PHP
        run: |
          dnf install -y "https://rpms.remirepo.net/fedora/remi-release-${{ matrix.fedora }}.rpm"
          dnf --enablerepo=remi-modular module enable -y "php:remi-${{ matrix.php }}"
          dnf --enablerepo=remi,remi-modular install -y "php" "php-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