]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
GHA: align all install, configure and build steps again
authorMarc Hoersken <info@marc-hoersken.de>
Tue, 17 May 2022 22:03:16 +0000 (00:03 +0200)
committerMarc Hoersken <info@marc-hoersken.de>
Tue, 24 May 2022 22:16:30 +0000 (00:16 +0200)
First step towards more unified build steps on GitHub Actions.

Closes #8873

14 files changed:
.github/workflows/bearssl.yml
.github/workflows/codeql-analysis.yml
.github/workflows/event-based.yml
.github/workflows/fuzz.yml
.github/workflows/hacktoberfest-accepted.yml
.github/workflows/linkcheck.yml
.github/workflows/linux-hyper.yml
.github/workflows/macos.yml
.github/workflows/mbedtls.yml
.github/workflows/msh3.yml
.github/workflows/nss.yml
.github/workflows/openssl3.yml
.github/workflows/rustls.yml
.github/workflows/wolfssl.yml

index 2b160b79f98ceb2eb5f684447aaf51223c0ee328..4aaa193e1919868f867b7a62aebdf70c996153df 100644 (file)
@@ -21,17 +21,18 @@ jobs:
       matrix:
         build:
         - name: bearssl
-          install:
-          configure: --with-bearssl=$HOME/bear --enable-debug --enable-werror
-        - name: clang-bearssl
-          install:
-          configure: CC=clang --with-bearssl=$HOME/bear --enable-debug --enable-werror
+          install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev
+          configure: LDFLAGS="-Wl,-rpath,$HOME/bear/lib" --with-bearssl=$HOME/bear --enable-debug
+        - name: bearssl-clang
+          install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev clang
+          configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/bear/lib" --with-bearssl=$HOME/bear --enable-debug
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config clang stunnel4 libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - run: |
         curl -LO https://bearssl.org/bearssl-0.6.tar.gz
@@ -41,13 +42,21 @@ jobs:
         mkdir -p $HOME/bear/lib $HOME/bear/include
         cp inc/*.h $HOME/bear/include
         cp build/libbearssl.* $HOME/bear/lib
-
-      name: 'get, build and install bearssl'
+      name: 'install bearssl'
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && LDFLAGS="-Wl,-rpath,$HOME/bear/lib" ./configure --enable-warnings --enable-werror --enable-headers-api ${{ matrix.build.configure }} && make V=1
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} --enable-headers-api
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'
index 6bc5405fe693eb440f4682e8040cd92ef57581f4..5d02714bc4da7356f91f53401e5512feda6d6cf3 100644 (file)
@@ -1,15 +1,15 @@
-name: codeql
+name: CodeQL
 
 on:
   # Trigger the workflow on push or pull requests, but only for the
   # master branch
   push:
     branches:
-      - master
-      - '*/ci'
+    - master
+    - '*/ci'
   pull_request:
     branches:
-      - master
+    - master
   schedule:
     - cron: '0 0 * * 4'
 
index 7dbf7d1feb870fc20bdee414397cd1d4462adfb9..e4149b125323cb84b3ab13a5884a26b223bb9bab 100644 (file)
@@ -1,4 +1,4 @@
-name: event-based
+name: Linux
 
 on:
   # Trigger the workflow on push or pull requests, but only for the
@@ -20,21 +20,31 @@ jobs:
       fail-fast: false
       matrix:
         build:
-        - name: event tests
-          install:
-          configure: --enable-debug --disable-shared --disable-threaded-resolver --enable-werror --with-libssh --with-openssl
+        - name: event-based
+          install: libpsl-dev libbrotli-dev libzstd-dev libssh-dev
+          configure: --enable-debug --disable-shared --disable-threaded-resolver --with-libssh --with-openssl
           tflags: -n -e '!TLS-SRP'
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config stunnel4 libpsl-dev libbrotli-dev libzstd-dev libssh-dev
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && ./configure ${{ matrix.build.configure }} && make V=1
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'
index 6bfc55ae5ba8eae72e428f82732523ec7cc754ac..fe0549e02f369b4f0ab78611e1290865f2fe8472 100644 (file)
@@ -5,11 +5,11 @@ on:
   # master branch
   push:
     branches:
-      - master
-      - '*/ci'
+    - master
+    - '*/ci'
   pull_request:
     branches:
-      - master
+    - master
 
 jobs:
   fuzzing:
index cc18e2603af82ffd846c7f1d845ed5a4d1b35e00..684151d6d2eeb6c650ce3cad97e2e21bcb85ac29 100644 (file)
@@ -4,9 +4,9 @@ on:
   # run for all pushes to master branch
   push:
     branches:
-      - master
+    - master
 
-permissions: 
+permissions:
   # requires issues AND pull-requests write permissions to edit labels on PRs!
   issues: write
   pull-requests: write
index a625c4c4206c5d2032c32e63fe329a0ee4afdef4..b4077e9089e99a0521688dad762203a8715f35d0 100644 (file)
@@ -1,5 +1,3 @@
-# Docs: https://github.com/marketplace/actions/markdown-link-check
-
 name: Markdown links
 
 on:
@@ -14,6 +12,7 @@ on:
     - master
 
 jobs:
+  # Docs: https://github.com/marketplace/actions/markdown-link-check
   check:
     runs-on: ubuntu-latest
     steps:
index f9c41261645b7dd029fc2f45b193d1c56e5eaa1b..4249f966b04b12f6a38f9f9ea93977043a6cc5da 100644 (file)
@@ -22,29 +22,41 @@ jobs:
         build:
         - name: hyper
           install:
-          configure: --with-openssl --with-hyper=$HOME/hyper --enable-headers-api
+          configure: LDFLAGS="-Wl,-rpath,$HOME/hyper/target/debug" --with-openssl --with-hyper=$HOME/hyper --enable-debug --enable-headers-api
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
-    - run: (cd $HOME;
-        git clone --depth=1 https://github.com/hyperium/hyper.git;
-        curl https://sh.rustup.rs -sSf | sh -s -- -y;
-        source $HOME/.cargo/env;
-        rustup toolchain install nightly;)
-      name: install rust
+    - run: |
+        cd $HOME
+        git clone --depth=1 https://github.com/hyperium/hyper.git
+        curl https://sh.rustup.rs -sSf | sh -s -- -y
+        source $HOME/.cargo/env
+        rustup toolchain install nightly
+      name: 'install rust'
 
-    - run: (cd $HOME/hyper;
-        RUSTFLAGS="--cfg hyper_unstable_ffi" cargo +nightly rustc --features client,http1,http2,ffi -Z unstable-options --crate-type cdylib)
+    - run: |
+        cd $HOME/hyper
+        RUSTFLAGS="--cfg hyper_unstable_ffi" cargo +nightly rustc --features client,http1,http2,ffi -Z unstable-options --crate-type cdylib
       name: 'install hyper'
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && LDFLAGS="-Wl,-rpath,$HOME/hyper/target/debug" ./configure --enable-debug --enable-werror ${{ matrix.build.configure }} && make V=1
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'
index b9d35324d96f03628af2b78149aa63642a870241..32009b1c91c4fb6e59b298d74eb42bb104aa4021 100644 (file)
@@ -89,8 +89,11 @@ jobs:
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && ./configure --enable-warnings --enable-werror --enable-headers-api ${{ matrix.build.configure }}
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} --enable-headers-api
+      name: 'configure'
       env:
         # -Wvla is caused by brotli
         CFLAGS: "-Wno-vla -mmacosx-version-min=${{ matrix.build.macosx-version-min }}"
@@ -98,6 +101,9 @@ jobs:
     - run: make V=1
       name: 'make'
 
+    - run: make V=1 examples
+      name: 'make examples'
+
     - run: make V=1 test-ci
       name: 'test'
       env:
index cb8afedfd6c7f27e2373bd658d18949bc24601f6..c622285ada85889984f9ad3b38882656a6a88242 100644 (file)
@@ -21,17 +21,18 @@ jobs:
       matrix:
         build:
         - name: mbedtls
-          install:
-          configure: --with-mbedtls=$HOME/mbed --enable-debug --enable-werror
-        - name: clang-mbedtls
-          install:
-          configure: CC=clang --with-mbedtls=$HOME/mbed --enable-debug --enable-werror
+          install: libpsl-dev libbrotli-dev libzstd-dev libnghttp2-dev
+          configure: LDFLAGS="-Wl,-rpath,$HOME/mbed/lib" --with-mbedtls=$HOME/mbed --enable-debug
+        - name: mbedtls-clang
+          install: libpsl-dev libbrotli-dev libzstd-dev libnghttp2-dev clang
+          configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/mbed/lib" --with-mbedtls=$HOME/mbed --enable-debug
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config clang stunnel4 libpsl-dev libbrotli-dev libzstd-dev libnghttp2-dev
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - run: |
         git clone --depth=1 -b v3.1.0 https://github.com/ARMmbed/mbedtls
@@ -42,8 +43,17 @@ jobs:
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && LDFLAGS="-Wl,-rpath,$HOME/mbed/lib" ./configure --enable-warnings --enable-werror --enable-headers-api ${{ matrix.build.configure }} && make V=1
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} --enable-headers-api
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'
index 004c98dc813d52776bd57606cda8745be63ecb75..099909a4265854d13f262708e85db813f2dff1bf 100644 (file)
@@ -21,14 +21,15 @@ jobs:
       matrix:
         build:
         - name: msh3
-          install:
-          configure: --with-msh3=$HOME/msh3 --enable-debug --enable-werror --with-openssl=$HOME/quictls
+          install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev
+          configure: LDFLAGS="-Wl,-rpath,$HOME/msh3/lib -Wl,-rpath,$HOME/quictls/lib" --with-msh3=$HOME/msh3 --enable-debug --enable-werror --with-openssl=$HOME/quictls
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config clang stunnel4 libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - run: |
         git clone --depth 1 -b OpenSSL_1_1_1j+quic https://github.com/quictls/openssl ossl
@@ -36,7 +37,7 @@ jobs:
         ./config enable-tls1_3 --prefix=$HOME/quictls
         make
         make install_sw
-      name: 'build and install quictls'
+      name: 'install quictls'
 
     - run: |
         git clone --depth 1 --recursive https://github.com/nibanks/msh3
@@ -44,12 +45,21 @@ jobs:
         cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/msh3 ..
         cmake --build .
         cmake --install .
-      name: 'build and install msh3'
+      name: 'install msh3'
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && LDFLAGS="-Wl,-rpath,$HOME/msh3/lib -Wl,-rpath,$HOME/quictls/lib" ./configure --enable-warnings --enable-werror --enable-headers-api ${{ matrix.build.configure }} && make V=1
-      name: 'configure and build curl'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} --enable-headers-api
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'
index 998eb42bf95bacc8690a633ec7f5b18c81a25fe6..2aaf0cb9ba7d093b3ac044a9a80563454fb20bac 100644 (file)
@@ -21,22 +21,22 @@ jobs:
       matrix:
         build:
         - name: NSS
-          install:
-          configure: --with-nss --enable-debug --enable-werror --with-nss-deprecated --enable-headers-api
+          install: clang-9 libnss3-dev libpsl-dev libbrotli-dev libzstd-dev libnghttp2-dev nss-plugin-pem
+          configure: CC=clang-9 CPPFLAGS="-isystem /usr/include/nss" --with-nss --enable-debug --with-nss-deprecated --enable-headers-api
 
     steps:
     - run: |
         sudo apt-get update
-        sudo apt-get install libtool autoconf automake pkg-config stunnel4 libnss3-dev clang-9 libpsl-dev libbrotli-dev libzstd-dev libnghttp2-dev nss-plugin-pem
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - uses: actions/checkout@v3
 
     - run: autoreconf -fi
       name: 'autoreconf'
 
-    - run: CC=clang-9 CPPFLAGS="-isystem /usr/include/nss" ./configure ${{ matrix.build.configure }}
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
       name: 'configure with clang'
 
     - run: make V=1
index 2c05c39f50f8868b3fbd9464b96f4cd02088057e..201272f3feeda89b526c09bafbabfe772555415c 100644 (file)
@@ -21,29 +21,39 @@ jobs:
       matrix:
         build:
         - name: openssl3
-          install:
-          configure: --with-openssl=$HOME/openssl3 --enable-debug --enable-werror
-        - name: clang-openssl3
-          install:
-          configure: CC=clang --with-openssl=$HOME/openssl3 --enable-debug --enable-werror
+          install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev
+          configure: LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug
+        - name: openssl3-clang
+          install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev clang
+          configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config clang stunnel4 libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - run: |
         git clone --depth=1 https://github.com/openssl/openssl
         cd openssl
         ./config enable-tls1_3 --prefix=$HOME/openssl3
         make && make install_sw
-      name: 'build and install openssl3'
+      name: 'install openssl3'
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" ./configure --enable-warnings --enable-werror --enable-headers-api ${{ matrix.build.configure }} && make V=1
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} --enable-headers-api
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'
index 8e3784b7d412d211ee50299b98a103be2578130d..ce80311009aeed9fc29b2c9677d9ca39fa4f5e7d 100644 (file)
@@ -21,14 +21,15 @@ jobs:
       matrix:
         build:
         - name: rustls
-          install:
-          configure: --with-rustls=$HOME/rustls --enable-debug --enable-werror --enable-headers-api
+          install: libpsl-dev libbrotli-dev libzstd-dev
+          configure: --with-rustls=$HOME/rustls --enable-debug
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config libpsl-dev libbrotli-dev libzstd-dev stunnel4
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - run: |
         git clone --depth=1 --recursive https://github.com/rustls/rustls-ffi.git -b v0.8.2
@@ -41,8 +42,17 @@ jobs:
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} && make V=1
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} --enable-headers-api
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'
index 440874ea112c26703215001b36edc46f686cd5f1..4ee84b31db008019788030007dbb2e469ba6c3c5 100644 (file)
@@ -22,18 +22,19 @@ jobs:
         build:
         - name: wolfssl (configured with --enable-all)
           install:
+          configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
           wolfssl-configure: --enable-all
-          curl-configure: --with-wolfssl=$HOME/wssl --enable-debug --enable-werror
         - name: wolfssl (configured with --enable-opensslextra)
           install:
+          configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
           wolfssl-configure: --enable-opensslextra
-          curl-configure: --with-wolfssl=$HOME/wssl --enable-debug --enable-werror
 
     steps:
     - run: |
-        sudo apt-get install libtool autoconf automake pkg-config stunnel4
+        sudo apt-get update
+        sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
         sudo python3 -m pip install impacket
-      name: install prereqs and impacket
+      name: 'install prereqs and impacket'
 
     - run: |
         curl -LO https://github.com/wolfSSL/wolfssl/archive/v5.0.0-stable.tar.gz
@@ -46,8 +47,17 @@ jobs:
 
     - uses: actions/checkout@v3
 
-    - run: autoreconf -fi && LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" ./configure --enable-warnings --enable-werror --enable-headers-api ${{ matrix.build.curl-configure }} && make V=1
-      name: 'configure and build'
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }} --enable-headers-api
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: make V=1 examples
+      name: 'make examples'
 
     - run: make V=1 test-ci
       name: 'test'