release_process.yml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  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. permissions:
  18. contents: read
  19. jobs:
  20. create_tag:
  21. permissions:
  22. contents: write # create and push tags
  23. uses: ./.github/workflows/create_tag.yml
  24. create_release:
  25. permissions:
  26. contents: write # create release
  27. needs: [create_tag]
  28. runs-on: ubuntu-latest
  29. outputs:
  30. upload_url: ${{ steps.create_release.outputs.upload_url }}
  31. steps:
  32. - uses: actions/checkout@v4
  33. - name: prepare the release note
  34. run: |
  35. extract_result="$(python3 ./.github/scripts/extract_from_release_notes.py RELEASE_NOTES.md)"
  36. echo "RELEASE_NOTE<<EOF" >> $GITHUB_ENV
  37. echo "${extract_result}" >> $GITHUB_ENV
  38. echo "EOF" >> $GITHUB_ENV
  39. - name: create a release
  40. id: create_release
  41. uses: actions/create-release@v1
  42. env:
  43. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  44. with:
  45. tag_name: ${{ needs.create_tag.outputs.new_tag }}
  46. release_name: ${{ needs.create_tag.outputs.new_tag }}
  47. prerelease: ${{ inputs.require_confirmation || needs.create_tag.outputs.minor_version }}
  48. draft: false
  49. body: ${{ env.RELEASE_NOTE }}
  50. #
  51. # LLVM_LIBRARIES
  52. build_llvm_libraries_on_ubuntu_2004:
  53. permissions:
  54. contents: read
  55. actions: write
  56. needs: [create_tag, create_release]
  57. uses: ./.github/workflows/build_llvm_libraries.yml
  58. with:
  59. os: "ubuntu-20.04"
  60. arch: "AArch64 ARM Mips RISCV X86"
  61. build_llvm_libraries_on_ubuntu_2204:
  62. permissions:
  63. contents: read
  64. actions: write
  65. needs: [create_tag, create_release]
  66. uses: ./.github/workflows/build_llvm_libraries.yml
  67. with:
  68. os: "ubuntu-22.04"
  69. arch: "AArch64 ARM Mips RISCV X86"
  70. build_llvm_libraries_on_macos:
  71. permissions:
  72. contents: read
  73. actions: write
  74. needs: [create_tag, create_release]
  75. uses: ./.github/workflows/build_llvm_libraries.yml
  76. with:
  77. os: "macos-13"
  78. arch: "AArch64 ARM Mips RISCV X86"
  79. build_llvm_libraries_on_windows:
  80. permissions:
  81. contents: read
  82. actions: write
  83. needs: [create_tag, create_release]
  84. uses: ./.github/workflows/build_llvm_libraries.yml
  85. with:
  86. os: "windows-latest"
  87. arch: "AArch64 ARM Mips RISCV X86"
  88. #
  89. # WAMRC
  90. release_wamrc_on_ubuntu_2004:
  91. permissions:
  92. contents: write # upload release artifact
  93. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
  94. uses: ./.github/workflows/build_wamrc.yml
  95. with:
  96. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
  97. release: true
  98. runner: ubuntu-20.04
  99. upload_url: ${{ needs.create_release.outputs.upload_url }}
  100. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  101. release_wamrc_on_ubuntu_2204:
  102. permissions:
  103. contents: write # upload release artifact
  104. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204 ]
  105. uses: ./.github/workflows/build_wamrc.yml
  106. with:
  107. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
  108. release: true
  109. runner: ubuntu-22.04
  110. upload_url: ${{ needs.create_release.outputs.upload_url }}
  111. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  112. release_wamrc_on_ubuntu_macos:
  113. permissions:
  114. contents: write # upload release artifact
  115. needs: [create_tag, create_release, build_llvm_libraries_on_macos]
  116. uses: ./.github/workflows/build_wamrc.yml
  117. with:
  118. llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
  119. release: true
  120. runner: macos-13
  121. upload_url: ${{ needs.create_release.outputs.upload_url }}
  122. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  123. release_wamrc_on_windows:
  124. permissions:
  125. contents: write # upload release artifact
  126. needs: [create_tag, create_release, build_llvm_libraries_on_windows]
  127. uses: ./.github/workflows/build_wamrc.yml
  128. with:
  129. llvm_cache_key: ${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}
  130. release: true
  131. runner: windows-latest
  132. upload_url: ${{ needs.create_release.outputs.upload_url }}
  133. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  134. #
  135. # IWASM
  136. release_iwasm_on_ubuntu_2004:
  137. permissions:
  138. contents: write # upload release artifact
  139. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
  140. uses: ./.github/workflows/build_iwasm_release.yml
  141. with:
  142. cwd: product-mini/platforms/linux
  143. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
  144. runner: ubuntu-20.04
  145. upload_url: ${{ needs.create_release.outputs.upload_url }}
  146. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  147. release_iwasm_on_ubuntu_2204:
  148. permissions:
  149. contents: write # upload release artifact
  150. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204]
  151. uses: ./.github/workflows/build_iwasm_release.yml
  152. with:
  153. cwd: product-mini/platforms/linux
  154. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
  155. runner: ubuntu-22.04
  156. upload_url: ${{ needs.create_release.outputs.upload_url }}
  157. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  158. release_iwasm_on_macos:
  159. permissions:
  160. contents: write # upload release artifact
  161. needs: [create_tag, create_release, build_llvm_libraries_on_macos]
  162. uses: ./.github/workflows/build_iwasm_release.yml
  163. with:
  164. cwd: product-mini/platforms/darwin
  165. llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
  166. runner: macos-13
  167. upload_url: ${{ needs.create_release.outputs.upload_url }}
  168. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  169. release_iwasm_on_windows:
  170. permissions:
  171. contents: write # upload release artifact
  172. needs: [create_tag, create_release, build_llvm_libraries_on_windows]
  173. uses: ./.github/workflows/build_iwasm_release.yml
  174. with:
  175. cwd: product-mini/platforms/windows
  176. llvm_cache_key: ${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}
  177. runner: windows-latest
  178. upload_url: ${{ needs.create_release.outputs.upload_url }}
  179. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  180. #
  181. # WAMR_SDK
  182. release_wamr_sdk_on_ubuntu_2004:
  183. permissions:
  184. contents: write # upload release artifact
  185. needs: [create_tag, create_release]
  186. uses: ./.github/workflows/build_wamr_sdk.yml
  187. with:
  188. config_file: wamr_config_ubuntu_release.cmake
  189. runner: ubuntu-20.04
  190. upload_url: ${{ needs.create_release.outputs.upload_url }}
  191. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  192. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
  193. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  194. release_wamr_sdk_on_ubuntu_2204:
  195. permissions:
  196. contents: write # upload release artifact
  197. needs: [create_tag, create_release]
  198. uses: ./.github/workflows/build_wamr_sdk.yml
  199. with:
  200. config_file: wamr_config_ubuntu_release.cmake
  201. runner: ubuntu-22.04
  202. upload_url: ${{ needs.create_release.outputs.upload_url }}
  203. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  204. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
  205. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  206. release_wamr_sdk_on_macos:
  207. permissions:
  208. contents: write # upload release artifact
  209. needs: [create_tag, create_release]
  210. uses: ./.github/workflows/build_wamr_sdk.yml
  211. with:
  212. config_file: wamr_config_macos_release.cmake
  213. runner: macos-13
  214. upload_url: ${{ needs.create_release.outputs.upload_url }}
  215. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  216. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz
  217. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  218. #
  219. # vscode extension cross-platform
  220. release_wamr_ide_vscode_ext:
  221. permissions:
  222. contents: write # upload release artifact
  223. needs: [create_tag, create_release]
  224. uses: ./.github/workflows/build_wamr_vscode_ext.yml
  225. secrets: inherit
  226. with:
  227. upload_url: ${{ needs.create_release.outputs.upload_url }}
  228. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  229. #
  230. # vscode extension docker images package
  231. release_wamr_ide_docker_images_package:
  232. permissions:
  233. contents: write # upload release artifact
  234. needs: [create_tag, create_release]
  235. uses: ./.github/workflows/build_docker_images.yml
  236. with:
  237. upload_url: ${{ needs.create_release.outputs.upload_url }}
  238. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  239. #
  240. # WAMR_LLDB
  241. release_wamr_lldb_on_ubuntu_2004:
  242. permissions:
  243. contents: write # upload release artifact
  244. needs: [create_tag, create_release]
  245. uses: ./.github/workflows/build_wamr_lldb.yml
  246. with:
  247. runner: ubuntu-20.04
  248. upload_url: ${{ needs.create_release.outputs.upload_url }}
  249. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  250. release_wamr_lldb_on_ubuntu_2204:
  251. permissions:
  252. contents: write # upload release artifact
  253. needs: [create_tag, create_release]
  254. uses: ./.github/workflows/build_wamr_lldb.yml
  255. with:
  256. runner: ubuntu-22.04
  257. upload_url: ${{ needs.create_release.outputs.upload_url }}
  258. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  259. release_wamr_lldb_on_macos_universal:
  260. permissions:
  261. contents: write # upload release artifact
  262. needs: [create_tag, create_release]
  263. uses: ./.github/workflows/build_wamr_lldb.yml
  264. with:
  265. runner: macos-13
  266. arch: universal
  267. upload_url: ${{ needs.create_release.outputs.upload_url }}
  268. ver_num: ${{ needs.create_tag.outputs.new_ver}}