# Copyright (C) Daniel Stenberg, , 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@11bd71901bbe5b1630ceea73d27597364c9af683 # 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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # 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@11bd71901bbe5b1630ceea73d27597364c9af683 # 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@11bd71901bbe5b1630ceea73d27597364c9af683 # 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