summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/ci-dev-distro-compiler.yaml
blob: 8b7f53b7850b681e91b3c3766eaf4cd40dc5265c (plain) (blame)
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
name: "CI - Fedora Rawhide / Alpine Edge / GCC / Clang"

on:
  push:
    branches: master
    paths:
      - configure
      - 'auto/**'
      - 'src/**'
      - 'test/**'
      - '.github/workflows/ci-dev-distro-compiler.yaml'
  pull_request:
    branches: master
    paths:
      - configure
      - 'auto/**'
      - 'src/**'
      - 'test/**'
      - '.github/workflows/ci-dev-distro-compiler.yaml'

jobs:

  fedora-rawhide:
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        compiler: [ 'gcc', 'clang' ]

    container:
      image: fedora:rawhide

    steps:
      - name: Install tools/deps
        run: |
          dnf -y update
          dnf -y install --setopt=install_weak_deps=False \
              which wget git gcc make pcre2-devel openssl-devel \
              python-unversioned-command python3 python3-devel \
              php-devel php-embedded perl-devel perl-ExtUtils-Embed \
              ruby-devel java-devel nodejs-devel nodejs-npm golang
          if [ "${{ matrix.compiler }}" = "clang" ]; then
            dnf -y install --setopt=install_weak_deps=False clang
          fi
          npm install -g node-gyp

      - uses: actions/checkout@v4

      - name: configure unit CC=${{ matrix.compiler }}
        run: |
          if [ "${{ matrix.compiler }}" = "clang" ]; then
            ./configure --openssl --cc=clang
          else
            ./configure --openssl
          fi

      - name: make unit
        run: make -j 4

      - name: configure unit-php
        run: ./configure php

      - name: make unit-php
        run: make -j 4 php

      - name: configure unit-python
        run: ./configure python

      - name: make unit-python
        run: make -j 4 python

      - name: configure unit-perl
        run: ./configure perl
        if: matrix.compiler == 'gcc'

      - name: make unit-perl
        run: make -j 4 perl
        if: matrix.compiler == 'gcc'

      - name: configure unit-ruby
        run: ./configure ruby

      - name: make unit-ruby
        run: make -j 4 ruby

      - name: configure unit-java
        run: ./configure java

      - name: make unit-java
        run: make -j 4 java

      - name: configure unit-nodejs
        run: ./configure nodejs

      - name: make unit-nodejs
        run: make node-local-install DESTDIR=node

      - name: configure unit-go
        run: ./configure go --go-path=

      - name: make unit-go
        run: make go-install

      - name: Install wasmtime
        run: |
          wget -O- https://github.com/bytecodealliance/wasmtime/releases/download/v20.0.0/wasmtime-v20.0.0-x86_64-linux-c-api.tar.xz | tar -xJf -

      - name: configure unit-wasm
        run: ./configure wasm --include-path=wasmtime-v20.0.0-x86_64-linux-c-api/include --lib-path=wasmtime-v20.0.0-x86_64-linux-c-api/lib --rpath

      - name: make unit-wasm
        run: make wasm

  alpine-edge:
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        compiler: [ 'gcc', 'clang' ]

    container:
      image: alpine:edge

    steps:
      - name: Install tools/deps
        run: |
          apk update && apk upgrade
          apk add gcc make musl-dev openssl-dev pcre2-dev curl \
              php83-dev php83-embed python3-dev perl-dev ruby-dev openjdk21-jdk
          if [ "${{ matrix.compiler }}" = "clang" ]; then
            apk add clang
          fi

      - uses: actions/checkout@v4

      - name: configure unit CC=${{ matrix.compiler }}
        run: |
          if [ "${{ matrix.compiler }}" = "clang" ]; then
            ./configure --openssl --cc=clang
          else
            ./configure --openssl
          fi

      - name: make unit
        run: make -j 4

      - name: configure unit-php
        run: ln -s /usr/lib/libphp83.so /usr/lib/libphp.so && ./configure php

      - name: make unit-php
        run: make -j 4

      - name: configure unit-python
        run: ./configure python

      - name: make unit-python
        run: make -j 4

      - name: configure unit-perl
        run: ./configure perl

      - name: make unit-perl
        run: make -j 4 perl

      - name: configure unit-ruby
        run: ./configure ruby

      - name: make unit-ruby
        run: make -j 4 ruby

      - name: configure unit-java
        run: ./configure java

      - name: make unit-java
        run: make -j 4 java