release_process.yml 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  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_2204:
  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-22.04"
  60. arch: "AArch64 ARM Mips RISCV X86"
  61. build_llvm_libraries_on_macos:
  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: "macos-13"
  69. arch: "AArch64 ARM Mips RISCV X86"
  70. build_llvm_libraries_on_windows:
  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: "windows-latest"
  78. arch: "AArch64 ARM Mips RISCV X86"
  79. #
  80. # WAMRC
  81. release_wamrc_on_ubuntu_2204:
  82. permissions:
  83. contents: write # upload release artifact
  84. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204 ]
  85. uses: ./.github/workflows/build_wamrc.yml
  86. with:
  87. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
  88. release: true
  89. runner: ubuntu-22.04
  90. upload_url: ${{ needs.create_release.outputs.upload_url }}
  91. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  92. release_wamrc_on_ubuntu_macos:
  93. permissions:
  94. contents: write # upload release artifact
  95. needs: [create_tag, create_release, build_llvm_libraries_on_macos]
  96. uses: ./.github/workflows/build_wamrc.yml
  97. with:
  98. llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
  99. release: true
  100. runner: macos-13
  101. upload_url: ${{ needs.create_release.outputs.upload_url }}
  102. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  103. release_wamrc_on_windows:
  104. permissions:
  105. contents: write # upload release artifact
  106. needs: [create_tag, create_release, build_llvm_libraries_on_windows]
  107. uses: ./.github/workflows/build_wamrc.yml
  108. with:
  109. llvm_cache_key: ${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}
  110. release: true
  111. runner: windows-latest
  112. upload_url: ${{ needs.create_release.outputs.upload_url }}
  113. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  114. #
  115. # IWASM
  116. release_iwasm_on_ubuntu_2204:
  117. permissions:
  118. contents: write # upload release artifact
  119. needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204]
  120. uses: ./.github/workflows/build_iwasm_release.yml
  121. with:
  122. cwd: product-mini/platforms/linux
  123. llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
  124. runner: ubuntu-22.04
  125. upload_url: ${{ needs.create_release.outputs.upload_url }}
  126. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  127. release_iwasm_on_macos:
  128. permissions:
  129. contents: write # upload release artifact
  130. needs: [create_tag, create_release, build_llvm_libraries_on_macos]
  131. uses: ./.github/workflows/build_iwasm_release.yml
  132. with:
  133. cwd: product-mini/platforms/darwin
  134. llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
  135. runner: macos-13
  136. upload_url: ${{ needs.create_release.outputs.upload_url }}
  137. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  138. release_iwasm_on_windows:
  139. permissions:
  140. contents: write # upload release artifact
  141. needs: [create_tag, create_release, build_llvm_libraries_on_windows]
  142. uses: ./.github/workflows/build_iwasm_release.yml
  143. with:
  144. cwd: product-mini/platforms/windows
  145. llvm_cache_key: ${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}
  146. runner: windows-latest
  147. upload_url: ${{ needs.create_release.outputs.upload_url }}
  148. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  149. #
  150. # WAMR_SDK
  151. release_wamr_sdk_on_ubuntu_2204:
  152. permissions:
  153. contents: write # upload release artifact
  154. needs: [create_tag, create_release]
  155. uses: ./.github/workflows/build_wamr_sdk.yml
  156. with:
  157. config_file: wamr_config_ubuntu_release.cmake
  158. runner: ubuntu-22.04
  159. upload_url: ${{ needs.create_release.outputs.upload_url }}
  160. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  161. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
  162. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  163. release_wamr_sdk_on_macos:
  164. permissions:
  165. contents: write # upload release artifact
  166. needs: [create_tag, create_release]
  167. uses: ./.github/workflows/build_wamr_sdk.yml
  168. with:
  169. config_file: wamr_config_macos_release.cmake
  170. runner: macos-13
  171. upload_url: ${{ needs.create_release.outputs.upload_url }}
  172. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  173. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz
  174. wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
  175. # Let's disable it for now and reopen it when the actual requirement arises.
  176. # Please ensure all dependencies have been updated before reopening.
  177. #
  178. # # vscode extension cross-platform
  179. # release_wamr_ide_vscode_ext:
  180. # permissions:
  181. # contents: write # upload release artifact
  182. # needs: [create_tag, create_release]
  183. # uses: ./.github/workflows/build_wamr_vscode_ext.yml
  184. # secrets: inherit
  185. # with:
  186. # upload_url: ${{ needs.create_release.outputs.upload_url }}
  187. # ver_num: ${{ needs.create_tag.outputs.new_ver }}
  188. # #
  189. # # vscode extension docker images package
  190. # release_wamr_ide_docker_images_package:
  191. # permissions:
  192. # contents: write # upload release artifact
  193. # needs: [create_tag, create_release]
  194. # uses: ./.github/workflows/build_docker_images.yml
  195. # with:
  196. # upload_url: ${{ needs.create_release.outputs.upload_url }}
  197. # ver_num: ${{ needs.create_tag.outputs.new_ver }}
  198. #
  199. # WAMR_LLDB
  200. release_wamr_lldb_on_ubuntu_2204:
  201. permissions:
  202. contents: write # upload release artifact
  203. needs: [create_tag, create_release]
  204. uses: ./.github/workflows/build_wamr_lldb.yml
  205. with:
  206. runner: ubuntu-22.04
  207. upload_url: ${{ needs.create_release.outputs.upload_url }}
  208. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  209. release_wamr_lldb_on_macos_universal:
  210. permissions:
  211. contents: write # upload release artifact
  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}}