- NetBSD: enable impacket. Debatable if this hefty package is worth it
for the single SMB test (1451) run curl uses it for.
(on the upside, it seems to install instantly on NetBSD)
It's also a versioned package name that requires active maintenance.
The unversioned name doesn't work, though that's what the package
search returns: https://pkgsrc.se/net/py-impacket
- FreeBSD: stop installing impacket deps explicitly.
They are automatically installed via the impacket package.
- Linux: put time limit on test runs.
Started hanging yesterday:
linux: https://github.com/curl/curl/actions/runs/10875011573/job/30172946986#step:41:3731
awslc: https://github.com/curl/curl/actions/runs/10879782864/job/30185188509
wolfssl: https://github.com/curl/curl/actions/runs/10879782864/job/30185188509
- distcheck: reduce time limit to 15m (was 30m)
Linux tests started to hang, so reduce the timeout from 30 minutes
to 15. These jobs normally take 3 to 6 minutes to finish.
https://github.com/curl/curl/actions/runs/10879479914
- Windows: add 32-bit MSYS2/mingw-w64 job.
Follow-up to e53523fef0 #14859
Closes #14929
157 lines
4.4 KiB
YAML
157 lines
4.4 KiB
YAML
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# SPDX-License-Identifier: curl
|
|
|
|
name: dist
|
|
|
|
'on':
|
|
push:
|
|
branches:
|
|
- master
|
|
- '*/ci'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
maketgz-and-verify-in-tree:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
steps:
|
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
|
|
|
- run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
|
|
name: 'remove preinstalled curl libcurl4{-doc}'
|
|
|
|
- run: autoreconf -fi
|
|
name: 'autoreconf'
|
|
|
|
- run: ./configure --without-ssl --without-libpsl
|
|
name: 'configure'
|
|
|
|
- run: make V=1
|
|
name: 'make'
|
|
|
|
- name: 'maketgz'
|
|
run: |
|
|
SOURCE_DATE_EPOCH=1711526400 ./scripts/maketgz 99.98.97
|
|
|
|
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4
|
|
with:
|
|
name: 'release-tgz'
|
|
path: 'curl-99.98.97.tar.gz'
|
|
retention-days: 1
|
|
|
|
- run: |
|
|
echo "::stop-commands::$(uuidgen)"
|
|
tar xvf curl-99.98.97.tar.gz
|
|
pushd curl-99.98.97
|
|
./configure --prefix=$HOME/temp --without-ssl --without-libpsl
|
|
make -j5
|
|
make -j5 test-ci
|
|
make -j5 install
|
|
popd
|
|
# basic check of the installed files
|
|
bash scripts/installcheck.sh $HOME/temp
|
|
rm -rf curl-99.98.97
|
|
name: 'verify in-tree configure build including install'
|
|
|
|
verify-out-of-tree-docs:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
needs: maketgz-and-verify-in-tree
|
|
steps:
|
|
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
|
with:
|
|
name: 'release-tgz'
|
|
|
|
- run: |
|
|
echo "::stop-commands::$(uuidgen)"
|
|
tar xvf curl-99.98.97.tar.gz
|
|
touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc
|
|
mkdir build
|
|
pushd build
|
|
../curl-99.98.97/configure --without-ssl --without-libpsl
|
|
make -j5
|
|
make -j5 test-ci
|
|
popd
|
|
rm -rf build
|
|
rm -rf curl-99.98.97
|
|
name: 'verify out-of-tree configure build including docs'
|
|
|
|
verify-out-of-tree-autotools-debug:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
needs: maketgz-and-verify-in-tree
|
|
steps:
|
|
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
|
with:
|
|
name: 'release-tgz'
|
|
|
|
- run: |
|
|
echo "::stop-commands::$(uuidgen)"
|
|
tar xvf curl-99.98.97.tar.gz
|
|
pushd curl-99.98.97
|
|
mkdir build
|
|
pushd build
|
|
../configure --without-ssl --enable-debug "--prefix=${PWD}/pkg" --without-libpsl
|
|
make -j5
|
|
make -j5 test-ci
|
|
make -j5 install
|
|
name: 'verify out-of-tree autotools debug build'
|
|
|
|
verify-out-of-tree-cmake:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
needs: maketgz-and-verify-in-tree
|
|
steps:
|
|
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
|
with:
|
|
name: 'release-tgz'
|
|
|
|
- run: |
|
|
echo "::stop-commands::$(uuidgen)"
|
|
tar xvf curl-99.98.97.tar.gz
|
|
pushd curl-99.98.97
|
|
cmake -B build -DCURL_WERROR=ON -DCURL_USE_LIBPSL=OFF
|
|
make -C build -j5
|
|
name: 'verify out-of-tree cmake build'
|
|
|
|
missing-files:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
needs: maketgz-and-verify-in-tree
|
|
steps:
|
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
|
|
|
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
|
with:
|
|
name: 'release-tgz'
|
|
|
|
- name: 'detect files missing from release tarball'
|
|
run: .github/scripts/distfiles.sh curl-99.98.97.tar.gz
|
|
|
|
reproducible-releases:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
|
|
|
- run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
|
|
name: 'remove preinstalled curl libcurl4{-doc}'
|
|
|
|
- run: ./scripts/dmaketgz 9.10.11
|
|
name: 'generate release tarballs'
|
|
|
|
- name: 'verify release tarballs'
|
|
run: |
|
|
mkdir _verify
|
|
mv curl-9.10.11.tar.gz _verify
|
|
cd _verify
|
|
../scripts/verify-release curl-9.10.11.tar.gz
|