From 54c6ad53a4b312d09261eb674635aca5a7d3f6ee Mon Sep 17 00:00:00 2001 From: Andrew Clayton Date: Fri, 19 Apr 2024 19:09:59 +0100 Subject: [PATCH] Add GitHub workflows for extra coverage This adds a workflow for building Unit under Fedora Rawhide. Rawhide is the development distribution for Fedora from which releases are cut. This usually consists of the latest versions of software and will hopefully catch new compiler issues and API breakages in the various languages we support. Signed-off-by: Andrew Clayton --- .github/workflows/ci-extras.yaml | 160 +++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 .github/workflows/ci-extras.yaml diff --git a/.github/workflows/ci-extras.yaml b/.github/workflows/ci-extras.yaml new file mode 100644 index 000000000..b514123e3 --- /dev/null +++ b/.github/workflows/ci-extras.yaml @@ -0,0 +1,160 @@ +name: ci-extras + +on: + push: + branches: master + paths: + - configure + - 'auto/**' + - 'src/**' + - 'test/**' + - '.github/workflows/ci-extras.yaml' + pull_request: + branches: master + paths: + - configure + - 'auto/**' + - 'src/**' + - 'test/**' + - '.github/workflows/ci-extras.yaml' + +jobs: + + fedora-rawhide: + runs-on: ubuntu-latest + + container: + image: fedora:rawhide + + steps: + - name: Install tools/deps + run: | + dnf -y update + dnf -y install 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 + npm install -g node-gyp + + - uses: actions/checkout@v4 + + - name: configure unit + run: ./configure --openssl + + - 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 + + - 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 + + - 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/v19.0.2/wasmtime-v19.0.2-x86_64-linux-c-api.tar.xz | tar -xJf - + + - name: configure unit-wasm + run: ./configure wasm --include-path=wasmtime-v19.0.2-x86_64-linux-c-api/include --lib-path=wasmtime-v19.0.2-x86_64-linux-c-api/lib --rpath + + - name: make unit-wasm + run: make wasm + + alpine-edge: + runs-on: ubuntu-latest + + container: + image: alpine:edge + + steps: + - name: Install tools/deps + run: | + apk update && apk upgrade + apk add gcc make musl-dev openssl-dev pcre2-dev \ + php83-dev php83-embed + + - uses: actions/checkout@v4 + + - name: configure unit + run: ./configure --openssl + + - name: make unit + run: make -j 4 + + - name: configure unit-php + run: ./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 perl + + - name: configure unit-ruby + run: ./configure ruby + + - name: make unit-ruby + run: make ruby + + - name: configure unit-java + run: ./configure java + + - name: make unit-java + run: make 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