1# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 2# 3# SPDX-License-Identifier: curl 4 5name: dist 6 7on: 8 push: 9 branches: 10 - master 11 - '*/ci' 12 pull_request: 13 branches: 14 - master 15 16concurrency: 17 group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} 18 cancel-in-progress: true 19 20permissions: {} 21 22jobs: 23 maketgz-and-verify-in-tree: 24 runs-on: ubuntu-latest 25 timeout-minutes: 30 26 steps: 27 - uses: actions/checkout@v4 28 29 - run: sudo apt-get purge -y curl libcurl4 libcurl4-doc 30 name: 'remove preinstalled curl libcurl4{-doc}' 31 32 - run: autoreconf -fi 33 name: 'autoreconf' 34 35 - run: ./configure --without-ssl --without-libpsl 36 name: 'configure' 37 38 - run: make V=1 && make V=1 clean 39 name: 'make and clean' 40 41 - name: 'maketgz' 42 run: | 43 SOURCE_DATE_EPOCH=1711526400 ./maketgz 99.98.97 44 45 - name: 'maketgz reproducibility test' 46 run: | 47 mkdir run1; mv ./curl-99.98.97.* run1/ 48 make V=1 && make V=1 clean 49 SOURCE_DATE_EPOCH=1711526400 ./maketgz 99.98.97 50 mkdir run2; cp -p ./curl-99.98.97.* run2/ 51 diff run1 run2 52 53 - uses: actions/upload-artifact@v4 54 with: 55 name: 'release-tgz' 56 path: 'curl-99.98.97.tar.gz' 57 58 - run: | 59 echo "::stop-commands::$(uuidgen)" 60 tar xvf curl-99.98.97.tar.gz 61 pushd curl-99.98.97 62 ./configure --prefix=$HOME/temp --without-ssl --without-libpsl 63 make -j3 64 make -j3 test-ci 65 make -j3 install 66 popd 67 # basic check of the installed files 68 bash scripts/installcheck.sh $HOME/temp 69 rm -rf curl-99.98.97 70 name: 'verify in-tree configure build including install' 71 72 verify-out-of-tree-docs: 73 runs-on: ubuntu-latest 74 timeout-minutes: 30 75 needs: maketgz-and-verify-in-tree 76 steps: 77 - uses: actions/download-artifact@v4 78 with: 79 name: 'release-tgz' 80 81 - run: | 82 echo "::stop-commands::$(uuidgen)" 83 tar xvf curl-99.98.97.tar.gz 84 touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc 85 mkdir build 86 pushd build 87 ../curl-99.98.97/configure --without-ssl --without-libpsl 88 make -j3 89 make -j3 test-ci 90 popd 91 rm -rf build 92 rm -rf curl-99.98.97 93 name: 'verify out-of-tree configure build including docs' 94 95 verify-out-of-tree-autotools-debug: 96 runs-on: ubuntu-latest 97 timeout-minutes: 30 98 needs: maketgz-and-verify-in-tree 99 steps: 100 - uses: actions/download-artifact@v4 101 with: 102 name: 'release-tgz' 103 104 - run: | 105 echo "::stop-commands::$(uuidgen)" 106 tar xvf curl-99.98.97.tar.gz 107 pushd curl-99.98.97 108 mkdir build 109 pushd build 110 ../configure --without-ssl --enable-debug "--prefix=${PWD}/pkg" --without-libpsl 111 make -j3 112 make -j3 test-ci 113 make -j3 install 114 name: 'verify out-of-tree autotools debug build' 115 116 verify-out-of-tree-cmake: 117 runs-on: ubuntu-latest 118 timeout-minutes: 30 119 needs: maketgz-and-verify-in-tree 120 steps: 121 - uses: actions/download-artifact@v4 122 with: 123 name: 'release-tgz' 124 125 - run: | 126 echo "::stop-commands::$(uuidgen)" 127 tar xvf curl-99.98.97.tar.gz 128 pushd curl-99.98.97 129 cmake -B build -DCURL_WERROR=ON 130 make -C build -j3 131 name: 'verify out-of-tree cmake build' 132