123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- # 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- - 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
- with:
- persist-credentials: false
- - 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
- with:
- persist-credentials: false
- - 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
|