distcheck.yml 3.7 KB

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