curl-for-win.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. # Copyright (C) Viktor Szakats
  2. #
  3. # SPDX-License-Identifier: curl
  4. ---
  5. name: curl-for-win
  6. 'on':
  7. push:
  8. branches:
  9. - master
  10. - '*/ci'
  11. paths-ignore:
  12. - '**/*.md'
  13. - '.circleci/**'
  14. - 'appveyor.*'
  15. - 'packages/**'
  16. - 'plan9/**'
  17. - 'projects/**'
  18. - 'winbuild/**'
  19. pull_request:
  20. branches:
  21. - master
  22. paths-ignore:
  23. - '**/*.md'
  24. - '.circleci/**'
  25. - 'appveyor.*'
  26. - 'packages/**'
  27. - 'plan9/**'
  28. - 'projects/**'
  29. - 'winbuild/**'
  30. concurrency:
  31. group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  32. cancel-in-progress: true
  33. permissions: {}
  34. env:
  35. CW_NOGET: 'curl trurl'
  36. CW_MAP: '0'
  37. CW_JOBS: '5'
  38. CW_NOPKG: '1'
  39. DOCKER_CONTENT_TRUST: '1'
  40. jobs:
  41. linux-glibc-llvm:
  42. runs-on: ubuntu-latest
  43. timeout-minutes: 30
  44. steps:
  45. - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  46. with:
  47. path: 'curl'
  48. fetch-depth: 8
  49. - name: 'build'
  50. run: |
  51. git clone --depth 1 https://github.com/curl/curl-for-win
  52. mv curl-for-win/* .
  53. export CW_CONFIG='-main-werror-linux-a64-x64'
  54. export CW_REVISION='${{ github.sha }}'
  55. DOCKER_IMAGE='debian:bookworm-slim'
  56. export CW_CCSUFFIX='-15'
  57. export CW_GCCSUFFIX='-12'
  58. docker trust inspect --pretty "${DOCKER_IMAGE}"
  59. time docker pull "${DOCKER_IMAGE}"
  60. docker images --digests
  61. time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
  62. --env-file <(env | grep -a -E \
  63. '^(CW_|GITHUB_)') \
  64. "${DOCKER_IMAGE}" \
  65. sh -c ./_ci-linux-debian.sh
  66. linux-musl-llvm:
  67. runs-on: ubuntu-latest
  68. timeout-minutes: 30
  69. steps:
  70. - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  71. with:
  72. path: 'curl'
  73. fetch-depth: 8
  74. - name: 'build'
  75. run: |
  76. git clone --depth 1 https://github.com/curl/curl-for-win
  77. mv curl-for-win/* .
  78. export CW_CONFIG='-main-werror-linux-musl-r64-x64'
  79. export CW_REVISION='${{ github.sha }}'
  80. . ./_versions.sh
  81. docker trust inspect --pretty "${DOCKER_IMAGE}"
  82. time docker pull "${DOCKER_IMAGE}"
  83. docker images --digests
  84. time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
  85. --env-file <(env | grep -a -E \
  86. '^(CW_|GITHUB_)') \
  87. "${DOCKER_IMAGE}" \
  88. sh -c ./_ci-linux-debian.sh
  89. mac-clang:
  90. runs-on: macos-latest
  91. timeout-minutes: 30
  92. env:
  93. CW_JOBS: '4'
  94. steps:
  95. - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  96. with:
  97. path: 'curl'
  98. fetch-depth: 8
  99. - name: 'build'
  100. run: |
  101. git clone --depth 1 https://github.com/curl/curl-for-win
  102. mv curl-for-win/* .
  103. export CW_CONFIG='-main-werror-mac-x64'
  104. export CW_REVISION='${{ github.sha }}'
  105. sh -c ./_ci-mac-homebrew.sh
  106. win-llvm:
  107. runs-on: ubuntu-latest
  108. steps:
  109. - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  110. with:
  111. path: 'curl'
  112. fetch-depth: 8
  113. - name: 'build'
  114. run: |
  115. git clone --depth 1 https://github.com/curl/curl-for-win
  116. mv curl-for-win/* .
  117. export CW_CONFIG='-main-werror-win-x64'
  118. export CW_REVISION='${{ github.sha }}'
  119. . ./_versions.sh
  120. docker trust inspect --pretty "${DOCKER_IMAGE}"
  121. time docker pull "${DOCKER_IMAGE}"
  122. docker images --digests
  123. time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
  124. --env-file <(env | grep -a -E \
  125. '^(CW_|GITHUB_)') \
  126. "${DOCKER_IMAGE}" \
  127. sh -c ./_ci-linux-debian.sh