release_process.yml 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. name: the binary release processes
  4. on:
  5. workflow_dispatch:
  6. inputs:
  7. require_confirmation:
  8. description: "If the process requires a confirmation"
  9. type: boolean
  10. required: false
  11. default: false
  12. # Cancel any in-flight jobs for the same PR/branch so there's only one active
  13. # at a time
  14. concurrency:
  15. group: ${{ github.workflow }}-${{ github.ref }}
  16. cancel-in-progress: true
  17. jobs:
  18. create_tag:
  19. uses: ./.github/workflows/create_tag.yml
  20. create_release:
  21. needs: [create_tag]
  22. runs-on: ubuntu-latest
  23. outputs:
  24. upload_url: ${{ steps.create_release.outputs.upload_url }}
  25. steps:
  26. - uses: actions/checkout@v4
  27. - name: prepare the release note
  28. run: |
  29. extract_result="$(python3 ./.github/scripts/extract_from_release_notes.py RELEASE_NOTES.md)"
  30. echo "RELEASE_NOTE<<EOF" >> $GITHUB_ENV
  31. echo "${extract_result}" >> $GITHUB_ENV
  32. echo "EOF" >> $GITHUB_ENV
  33. - name: create a release
  34. id: create_release
  35. uses: actions/create-release@v1
  36. env:
  37. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  38. with:
  39. tag_name: ${{ needs.create_tag.outputs.new_tag }}
  40. release_name: ${{ needs.create_tag.outputs.new_tag }}
  41. prerelease: ${{ inputs.require_confirmation || needs.create_tag.outputs.minor_version }}
  42. draft: false
  43. body: ${{ env.RELEASE_NOTE }}
  44. #
  45. # LLVM_LIBRARIES
  46. build_llvm_libraries_on_ubuntu_2004:
  47. needs: [create_tag, create_release]
  48. uses: ./.github/workflows/build_llvm_libraries.yml
  49. with:
  50. os: "ubuntu-20.04"
  51. arch: "AArch64 ARM Mips RISCV X86"
  52. build_llvm_libraries_on_ubuntu_2204:
  53. needs: [create_tag, create_release]
  54. uses: ./.github/workflows/build_llvm_libraries.yml
  55. with:
  56. os: "ubuntu-22.04"
  57. arch: "AArch64 ARM Mips RISCV X86"
  58. build_llvm_libraries_on_macos:
  59. needs: [create_tag, create_release]
  60. uses: ./.github/workflows/build_llvm_libraries.yml
  61. with:
  62. os: "macos-13"
  63. arch: "AArch64 ARM Mips RISCV X86"
  64. build_llvm_libraries_on_windows:
  65. needs: [create_tag, create_release]
  66. uses: ./.github/workflows/build_llvm_libraries.yml
  67. with:
  68. os: "windows-latest"
  69. arch: "AArch64 ARM Mips RISCV X86"
  70. #
  71. # WAMRC
  72. release_wamrc_on_ubuntu_2004:
  73. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
  74. uses: ./.github/workflows/build_wamrc.yml
  75. with:
  76. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
  77. release: true
  78. runner: ubuntu-20.04
  79. upload_url: ${{ needs.create_release.outputs.upload_url }}
  80. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  81. release_wamrc_on_ubuntu_2204:
  82. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204 ]
  83. uses: ./.github/workflows/build_wamrc.yml
  84. with:
  85. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
  86. release: true
  87. runner: ubuntu-22.04
  88. upload_url: ${{ needs.create_release.outputs.upload_url }}
  89. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  90. release_wamrc_on_ubuntu_macos:
  91. needs: [create_tag, create_release, build_llvm_libraries_on_macos]
  92. uses: ./.github/workflows/build_wamrc.yml
  93. with:
  94. llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
  95. release: true
  96. runner: macos-13
  97. upload_url: ${{ needs.create_release.outputs.upload_url }}
  98. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  99. release_wamrc_on_windows:
  100. needs: [create_tag, create_release, build_llvm_libraries_on_windows]
  101. uses: ./.github/workflows/build_wamrc.yml
  102. with:
  103. llvm_cache_key: ${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}
  104. release: true
  105. runner: windows-latest
  106. upload_url: ${{ needs.create_release.outputs.upload_url }}
  107. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  108. #
  109. # IWASM
  110. release_iwasm_on_ubuntu_2004:
  111. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
  112. uses: ./.github/workflows/build_iwasm_release.yml
  113. with:
  114. cwd: product-mini/platforms/linux
  115. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
  116. runner: ubuntu-20.04
  117. upload_url: ${{ needs.create_release.outputs.upload_url }}
  118. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  119. release_iwasm_on_ubuntu_2204:
  120. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204]
  121. uses: ./.github/workflows/build_iwasm_release.yml
  122. with:
  123. cwd: product-mini/platforms/linux
  124. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
  125. runner: ubuntu-22.04
  126. upload_url: ${{ needs.create_release.outputs.upload_url }}
  127. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  128. release_iwasm_on_macos:
  129. needs: [create_tag, create_release, build_llvm_libraries_on_macos]
  130. uses: ./.github/workflows/build_iwasm_release.yml
  131. with:
  132. cwd: product-mini/platforms/darwin
  133. llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
  134. runner: macos-13
  135. upload_url: ${{ needs.create_release.outputs.upload_url }}
  136. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  137. release_iwasm_on_windows:
  138. needs: [create_tag, create_release, build_llvm_libraries_on_windows]
  139. uses: ./.github/workflows/build_iwasm_release.yml
  140. with:
  141. cwd: product-mini/platforms/windows
  142. llvm_cache_key: ${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}
  143. runner: windows-latest
  144. upload_url: ${{ needs.create_release.outputs.upload_url }}
  145. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  146. #
  147. # WAMR_SDK
  148. release_wamr_sdk_on_ubuntu_2004:
  149. needs: [create_tag, create_release]
  150. uses: ./.github/workflows/build_wamr_sdk.yml
  151. with:
  152. config_file: wamr_config_ubuntu_release.cmake
  153. runner: ubuntu-20.04
  154. upload_url: ${{ needs.create_release.outputs.upload_url }}
  155. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  156. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
  157. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  158. release_wamr_sdk_on_ubuntu_2204:
  159. needs: [create_tag, create_release]
  160. uses: ./.github/workflows/build_wamr_sdk.yml
  161. with:
  162. config_file: wamr_config_ubuntu_release.cmake
  163. runner: ubuntu-22.04
  164. upload_url: ${{ needs.create_release.outputs.upload_url }}
  165. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  166. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
  167. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  168. release_wamr_sdk_on_macos:
  169. needs: [create_tag, create_release]
  170. uses: ./.github/workflows/build_wamr_sdk.yml
  171. with:
  172. config_file: wamr_config_macos_release.cmake
  173. runner: macos-13
  174. upload_url: ${{ needs.create_release.outputs.upload_url }}
  175. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  176. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz
  177. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  178. #
  179. # vscode extension cross-platform
  180. release_wamr_ide_vscode_ext:
  181. needs: [create_tag, create_release]
  182. uses: ./.github/workflows/build_wamr_vscode_ext.yml
  183. secrets: inherit
  184. with:
  185. upload_url: ${{ needs.create_release.outputs.upload_url }}
  186. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  187. #
  188. # vscode extension docker images package
  189. release_wamr_ide_docker_images_package:
  190. needs: [create_tag, create_release]
  191. uses: ./.github/workflows/build_docker_images.yml
  192. with:
  193. upload_url: ${{ needs.create_release.outputs.upload_url }}
  194. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  195. #
  196. # WAMR_LLDB
  197. release_wamr_lldb_on_ubuntu_2004:
  198. needs: [create_tag, create_release]
  199. uses: ./.github/workflows/build_wamr_lldb.yml
  200. with:
  201. runner: ubuntu-20.04
  202. upload_url: ${{ needs.create_release.outputs.upload_url }}
  203. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  204. release_wamr_lldb_on_ubuntu_2204:
  205. needs: [create_tag, create_release]
  206. uses: ./.github/workflows/build_wamr_lldb.yml
  207. with:
  208. runner: ubuntu-22.04
  209. upload_url: ${{ needs.create_release.outputs.upload_url }}
  210. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  211. release_wamr_lldb_on_macos_universal:
  212. needs: [create_tag, create_release]
  213. uses: ./.github/workflows/build_wamr_lldb.yml
  214. with:
  215. runner: macos-13
  216. arch: universal
  217. upload_url: ${{ needs.create_release.outputs.upload_url }}
  218. ver_num: ${{ needs.create_tag.outputs.new_ver}}