2
0

distcheck.yml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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: 15
  21. steps:
  22. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 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
  30. name: 'make'
  31. - name: 'maketgz'
  32. run: |
  33. SOURCE_DATE_EPOCH=1711526400 ./scripts/maketgz 99.98.97
  34. - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
  35. with:
  36. name: 'release-tgz'
  37. path: 'curl-99.98.97.tar.gz'
  38. retention-days: 1
  39. - run: |
  40. echo "::stop-commands::$(uuidgen)"
  41. tar xvf curl-99.98.97.tar.gz
  42. pushd curl-99.98.97
  43. ./configure --prefix=$HOME/temp --without-ssl --without-libpsl
  44. make -j5
  45. make -j5 test-ci
  46. make -j5 install
  47. popd
  48. # basic check of the installed files
  49. bash scripts/installcheck.sh $HOME/temp
  50. rm -rf curl-99.98.97
  51. name: 'verify in-tree configure build including install'
  52. verify-out-of-tree-docs:
  53. runs-on: ubuntu-latest
  54. timeout-minutes: 15
  55. needs: maketgz-and-verify-in-tree
  56. steps:
  57. - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
  58. with:
  59. name: 'release-tgz'
  60. - run: |
  61. echo "::stop-commands::$(uuidgen)"
  62. tar xvf curl-99.98.97.tar.gz
  63. touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc
  64. mkdir build
  65. pushd build
  66. ../curl-99.98.97/configure --without-ssl --without-libpsl
  67. make -j5
  68. make -j5 test-ci
  69. popd
  70. rm -rf build
  71. rm -rf curl-99.98.97
  72. name: 'verify out-of-tree configure build including docs'
  73. verify-out-of-tree-autotools-debug:
  74. runs-on: ubuntu-latest
  75. timeout-minutes: 15
  76. needs: maketgz-and-verify-in-tree
  77. steps:
  78. - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
  79. with:
  80. name: 'release-tgz'
  81. - run: |
  82. echo "::stop-commands::$(uuidgen)"
  83. tar xvf curl-99.98.97.tar.gz
  84. pushd curl-99.98.97
  85. mkdir build
  86. pushd build
  87. ../configure --without-ssl --enable-debug "--prefix=${PWD}/pkg" --without-libpsl
  88. make -j5
  89. make -j5 test-ci
  90. make -j5 install
  91. name: 'verify out-of-tree autotools debug build'
  92. verify-out-of-tree-cmake:
  93. runs-on: ubuntu-latest
  94. timeout-minutes: 15
  95. needs: maketgz-and-verify-in-tree
  96. steps:
  97. - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
  98. with:
  99. name: 'release-tgz'
  100. - run: |
  101. echo "::stop-commands::$(uuidgen)"
  102. tar xvf curl-99.98.97.tar.gz
  103. pushd curl-99.98.97
  104. cmake -B build -DCURL_WERROR=ON -DCURL_USE_LIBPSL=OFF
  105. make -C build -j5
  106. name: 'verify out-of-tree cmake build'
  107. missing-files:
  108. runs-on: ubuntu-latest
  109. timeout-minutes: 5
  110. needs: maketgz-and-verify-in-tree
  111. steps:
  112. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
  113. - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
  114. with:
  115. name: 'release-tgz'
  116. - name: 'detect files missing from release tarball'
  117. run: .github/scripts/distfiles.sh curl-99.98.97.tar.gz
  118. reproducible-releases:
  119. runs-on: ubuntu-latest
  120. steps:
  121. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
  122. - run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
  123. name: 'remove preinstalled curl libcurl4{-doc}'
  124. - run: ./scripts/dmaketgz 9.10.11
  125. name: 'generate release tarballs'
  126. - name: 'verify release tarballs'
  127. run: |
  128. mkdir _verify
  129. mv curl-9.10.11.tar.gz _verify
  130. cd _verify
  131. ../scripts/verify-release curl-9.10.11.tar.gz