From: Marc Hoersken Date: Tue, 17 May 2022 22:03:16 +0000 (+0200) Subject: GHA: align all install, configure and build steps again X-Git-Tag: curl-7_84_0~138 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=498ecdfd6488088ad2c03a43b919e0bead80fadc;p=thirdparty%2Fcurl.git GHA: align all install, configure and build steps again First step towards more unified build steps on GitHub Actions. Closes #8873 --- diff --git a/.github/workflows/bearssl.yml b/.github/workflows/bearssl.yml index 2b160b79f9..4aaa193e19 100644 --- a/.github/workflows/bearssl.yml +++ b/.github/workflows/bearssl.yml @@ -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' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 6bc5405fe6..5d02714bc4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -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' diff --git a/.github/workflows/event-based.yml b/.github/workflows/event-based.yml index 7dbf7d1feb..e4149b1253 100644 --- a/.github/workflows/event-based.yml +++ b/.github/workflows/event-based.yml @@ -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' diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 6bfc55ae5b..fe0549e02f 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -5,11 +5,11 @@ on: # master branch push: branches: - - master - - '*/ci' + - master + - '*/ci' pull_request: branches: - - master + - master jobs: fuzzing: diff --git a/.github/workflows/hacktoberfest-accepted.yml b/.github/workflows/hacktoberfest-accepted.yml index cc18e2603a..684151d6d2 100644 --- a/.github/workflows/hacktoberfest-accepted.yml +++ b/.github/workflows/hacktoberfest-accepted.yml @@ -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 diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml index a625c4c420..b4077e9089 100644 --- a/.github/workflows/linkcheck.yml +++ b/.github/workflows/linkcheck.yml @@ -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: diff --git a/.github/workflows/linux-hyper.yml b/.github/workflows/linux-hyper.yml index f9c4126164..4249f966b0 100644 --- a/.github/workflows/linux-hyper.yml +++ b/.github/workflows/linux-hyper.yml @@ -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' diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index b9d35324d9..32009b1c91 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -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: diff --git a/.github/workflows/mbedtls.yml b/.github/workflows/mbedtls.yml index cb8afedfd6..c622285ada 100644 --- a/.github/workflows/mbedtls.yml +++ b/.github/workflows/mbedtls.yml @@ -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' diff --git a/.github/workflows/msh3.yml b/.github/workflows/msh3.yml index 004c98dc81..099909a426 100644 --- a/.github/workflows/msh3.yml +++ b/.github/workflows/msh3.yml @@ -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' diff --git a/.github/workflows/nss.yml b/.github/workflows/nss.yml index 998eb42bf9..2aaf0cb9ba 100644 --- a/.github/workflows/nss.yml +++ b/.github/workflows/nss.yml @@ -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 diff --git a/.github/workflows/openssl3.yml b/.github/workflows/openssl3.yml index 2c05c39f50..201272f3fe 100644 --- a/.github/workflows/openssl3.yml +++ b/.github/workflows/openssl3.yml @@ -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' diff --git a/.github/workflows/rustls.yml b/.github/workflows/rustls.yml index 8e3784b7d4..ce80311009 100644 --- a/.github/workflows/rustls.yml +++ b/.github/workflows/rustls.yml @@ -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' diff --git a/.github/workflows/wolfssl.yml b/.github/workflows/wolfssl.yml index 440874ea11..4ee84b31db 100644 --- a/.github/workflows/wolfssl.yml +++ b/.github/workflows/wolfssl.yml @@ -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'