summaryrefslogtreecommitdiff
path: root/.github/workflows/distributions.yml
blob: 18a8cceb5bf01adbdcc67e108604c7634f4b55e6 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name: CI for linux distributions
on:
  pull_request:
  push:
  schedule:
    - cron: '0 16 * * 5'


jobs:
  debian:
    runs-on: ubuntu-latest
    container: debian:stable
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Remove php8 tests for php7
        run: rm -rf src/tests/*php8*/ src/tests/*/*_php8.phpt src/tests/disable_function/*_signal.phpt
      - name: Install dependencies
        run: |
          apt update
          DEBIAN_FRONTEND=noninteractive apt install -y php-dev php-pear
      - name: Install pecl
        run: pecl install vld-beta
      - name: Build and run the testsuite
        run: make release tests
      - name: Show logs in case of failure
        if: ${{ failure() }}
        run: |
          grep -r . --include='*.log' src/tests

  fedora:
    runs-on: ubuntu-latest
    container: fedora:34
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Remove php8 tests for php7
        run: rm -rf src/tests/*php8*/ src/tests/*/*_php8.phpt src/tests/disable_function/*_signal.phpt
      - name: Install dependencies
        run: |
          dnf install -y php-devel php-pear make
      - name: Install pecl
        run: pecl install vld-beta
      - name: Build and run the testsuite
        run: make release tests
      - name: Show logs in case of failure
        if: ${{ failure() }}
        run: |
          grep -r . --include='*.log' src/tests

  ubuntu:
    runs-on: ubuntu-latest
    container: ubuntu:latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Remove php8 tests for php7
        run: rm -rf src/tests/*php8*/ src/tests/*/*_php8.phpt
      - name: Install dependencies
        run: |
          apt update
          DEBIAN_FRONTEND=noninteractive apt install -y php-dev
      - name: Install pecl
        run: pecl install vld-beta
      - name: Build and run the testsuite
        run: make tests
      - name: Show logs in case of failure
        if: ${{ failure() }}
        run: |
          grep -r . --include='*.log' src/tests

  archlinux:
    runs-on: ubuntu-latest
    container: archlinux:latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Remove php8 tests for php7
        run: rm -rf src/tests/*php8*/ src/tests/*/*_php8.phpt
      - name: Install dependencies
        continue-on-error: true
        run: |
          pacman --sync --refresh --noconfirm --quiet php wget autoconf gcc make
          wget https://pear.php.net/go-pear.phar
          php go-pear.phar
      - name: Install pecl
        continue-on-error: true
        run: pecl install vld-beta
      - name: Build SP and run the testsuite
        continue-on-error: true
        run: make tests
      - name: Show logs in case of failure
        continue-on-error: true
        if: ${{ failure() }}
        run: |
          grep -r . --include='*.log' src/tests

  alpine:
    runs-on: ubuntu-latest
    container: alpine:latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Remove php8 tests for php7
        run: rm -rf src/tests/*php8*/ src/tests/*/*_php8.phpt
      - name: Remove tests failing on alpine for wathever reason
        run: rm -rf src/tests/cookies_encryption_warning src/tests/upload_validation/upload_validation.phpt /tests/broken_configuration/encrypt_regexp_cookies_bad_regexp.phpt
      - name: Install dependencies
        run: apk add php7-dev php7-cgi php7-simplexml php7-xml pcre-dev build-base php7-pear php7-openssl php7-session bash grep
      - name: Install pecl
        continue-on-error: true
        run: pecl install vld-beta
      - name: Build SP and run the testsuite
        run: |
          make release
          ln -s $(php -r 'echo ini_get("extension_dir");')/* src/modules/
          make tests
      - name: Show logs in case of failure
        if: ${{ failure() }}
        run: |
          grep -r . --include='*.log' src/tests

  ## PHP 8
  alpine_php8:
    runs-on: ubuntu-latest
    container: alpine:edge
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Remove tests failing on alpine for wathever reason
        run: rm -rf src/tests/cookies_encryption_warning src/tests/upload_validation/upload_validation.phpt
      - name: Install dependencies
        run: apk add php8-dev php8-cgi php8-simplexml php8-xml pcre-dev build-base php8-pear php8-openssl php8-session php8-curl bash grep
      - name: Install pecl
        continue-on-error: true
        run: pecl install vld-beta
      - name: Build SP and run the testsuite
        run: |
          make release
          ln -s $(php -r 'echo ini_get("extension_dir");')/* src/modules/
          make tests
      - name: Show logs in case of failure
        if: ${{ failure() }}
        run: |
          grep -r . --include='*.log' src/tests