curl-for-win.yml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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. jobs:
  40. linux-glibc-llvm:
  41. runs-on: ubuntu-latest
  42. timeout-minutes: 30
  43. steps:
  44. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
  45. with:
  46. persist-credentials: false
  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. DOCKER_CONTENT_TRUST=1
  57. export CW_CCSUFFIX='-15'
  58. export CW_GCCSUFFIX='-12'
  59. docker trust inspect --pretty "${DOCKER_IMAGE}"
  60. time docker pull "${DOCKER_IMAGE}"
  61. docker images --digests
  62. time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
  63. --env-file <(env | grep -a -E \
  64. '^(CW_|GITHUB_)') \
  65. "${DOCKER_IMAGE}" \
  66. sh -c ./_ci-linux-debian.sh
  67. linux-musl-llvm:
  68. runs-on: ubuntu-latest
  69. timeout-minutes: 30
  70. steps:
  71. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
  72. with:
  73. persist-credentials: false
  74. path: 'curl'
  75. fetch-depth: 8
  76. - name: 'build'
  77. run: |
  78. git clone --depth 1 https://github.com/curl/curl-for-win
  79. mv curl-for-win/* .
  80. export CW_CONFIG='-main-werror-linux-musl-r64-x64'
  81. export CW_REVISION='${{ github.sha }}'
  82. . ./_versions.sh
  83. docker trust inspect --pretty "${DOCKER_IMAGE}"
  84. time docker pull "${DOCKER_IMAGE}"
  85. docker images --digests
  86. time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
  87. --env-file <(env | grep -a -E \
  88. '^(CW_|GITHUB_)') \
  89. "${DOCKER_IMAGE}" \
  90. sh -c ./_ci-linux-debian.sh
  91. mac-clang:
  92. runs-on: macos-latest
  93. timeout-minutes: 30
  94. env:
  95. CW_JOBS: '4'
  96. steps:
  97. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
  98. with:
  99. persist-credentials: false
  100. path: 'curl'
  101. fetch-depth: 8
  102. - name: 'build'
  103. run: |
  104. git clone --depth 1 https://github.com/curl/curl-for-win
  105. mv curl-for-win/* .
  106. export CW_CONFIG='-main-werror-mac-x64'
  107. export CW_REVISION='${{ github.sha }}'
  108. sh -c ./_ci-mac-homebrew.sh
  109. win-llvm:
  110. runs-on: ubuntu-latest
  111. steps:
  112. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
  113. with:
  114. persist-credentials: false
  115. path: 'curl'
  116. fetch-depth: 8
  117. - name: 'build'
  118. run: |
  119. git clone --depth 1 https://github.com/curl/curl-for-win
  120. mv curl-for-win/* .
  121. export CW_CONFIG='-main-werror-win-x64'
  122. export CW_REVISION='${{ github.sha }}'
  123. . ./_versions.sh
  124. docker trust inspect --pretty "${DOCKER_IMAGE}"
  125. time docker pull "${DOCKER_IMAGE}"
  126. docker images --digests
  127. time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
  128. --env-file <(env | grep -a -E \
  129. '^(CW_|GITHUB_)') \
  130. "${DOCKER_IMAGE}" \
  131. sh -c ./_ci-linux-debian.sh