release_process.yml 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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@v3
  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. # WAMRC
  46. release_wamrc_on_ubuntu_2004:
  47. needs: [create_tag, create_release]
  48. uses: ./.github/workflows/build_wamrc.yml
  49. with:
  50. # can't take an env variable here
  51. llvm_cache_key: ubuntu-20.04-build-llvm_libraries_ex
  52. release: true
  53. runner: ubuntu-20.04
  54. upload_url: ${{ needs.create_release.outputs.upload_url }}
  55. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  56. release_wamrc_on_ubuntu_2204:
  57. needs: [create_tag, create_release]
  58. uses: ./.github/workflows/build_wamrc.yml
  59. with:
  60. # can't take an env variable here
  61. llvm_cache_key: ubuntu-22.04-build-llvm_libraries_ex
  62. release: true
  63. runner: ubuntu-22.04
  64. upload_url: ${{ needs.create_release.outputs.upload_url }}
  65. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  66. release_wamrc_on_ubuntu_macos:
  67. needs: [create_tag, create_release]
  68. uses: ./.github/workflows/build_wamrc.yml
  69. with:
  70. # can't take an env variable here
  71. llvm_cache_key: macos-latest-build-llvm_libraries_ex
  72. release: true
  73. runner: macos-latest
  74. upload_url: ${{ needs.create_release.outputs.upload_url }}
  75. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  76. #
  77. # IWASM
  78. release_iwasm_on_ubuntu_2004:
  79. needs: [create_tag, create_release]
  80. uses: ./.github/workflows/build_iwasm_release.yml
  81. with:
  82. cwd: product-mini/platforms/linux
  83. runner: ubuntu-20.04
  84. upload_url: ${{ needs.create_release.outputs.upload_url }}
  85. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  86. release_iwasm_on_ubuntu_2204:
  87. needs: [create_tag, create_release]
  88. uses: ./.github/workflows/build_iwasm_release.yml
  89. with:
  90. cwd: product-mini/platforms/linux
  91. runner: ubuntu-22.04
  92. upload_url: ${{ needs.create_release.outputs.upload_url }}
  93. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  94. release_iwasm_on_macos:
  95. needs: [create_tag, create_release]
  96. uses: ./.github/workflows/build_iwasm_release.yml
  97. with:
  98. cwd: product-mini/platforms/darwin
  99. runner: macos-latest
  100. upload_url: ${{ needs.create_release.outputs.upload_url }}
  101. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  102. #
  103. # WAMR_SDK
  104. release_wamr_sdk_on_ubuntu_2004:
  105. needs: [create_tag, create_release]
  106. uses: ./.github/workflows/build_wamr_sdk.yml
  107. with:
  108. config_file: wamr_config_ubuntu_release.cmake
  109. runner: ubuntu-20.04
  110. upload_url: ${{ needs.create_release.outputs.upload_url }}
  111. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  112. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
  113. release_wamr_sdk_on_ubuntu_2204:
  114. needs: [create_tag, create_release]
  115. uses: ./.github/workflows/build_wamr_sdk.yml
  116. with:
  117. config_file: wamr_config_ubuntu_release.cmake
  118. runner: ubuntu-22.04
  119. upload_url: ${{ needs.create_release.outputs.upload_url }}
  120. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  121. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
  122. release_wamr_sdk_on_macos:
  123. needs: [create_tag, create_release]
  124. uses: ./.github/workflows/build_wamr_sdk.yml
  125. with:
  126. config_file: wamr_config_macos_release.cmake
  127. runner: macos-latest
  128. upload_url: ${{ needs.create_release.outputs.upload_url }}
  129. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  130. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz
  131. #
  132. # vscode extension cross-platform
  133. release_wamr_ide_vscode_ext:
  134. needs: [create_tag, create_release]
  135. uses: ./.github/workflows/build_wamr_vscode_ext.yml
  136. secrets: inherit
  137. with:
  138. upload_url: ${{ needs.create_release.outputs.upload_url }}
  139. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  140. #
  141. # vscode extension docker images package
  142. release_wamr_ide_docker_images_package:
  143. needs: [create_tag, create_release]
  144. uses: ./.github/workflows/build_docker_images.yml
  145. with:
  146. upload_url: ${{ needs.create_release.outputs.upload_url }}
  147. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  148. #
  149. # WAMR_LLDB
  150. release_wamr_lldb_on_ubuntu_2004:
  151. needs: [create_tag, create_release]
  152. uses: ./.github/workflows/build_wamr_lldb.yml
  153. with:
  154. runner: ubuntu-20.04
  155. upload_url: ${{ needs.create_release.outputs.upload_url }}
  156. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  157. release_wamr_lldb_on_ubuntu_2204:
  158. needs: [create_tag, create_release]
  159. uses: ./.github/workflows/build_wamr_lldb.yml
  160. with:
  161. runner: ubuntu-22.04
  162. upload_url: ${{ needs.create_release.outputs.upload_url }}
  163. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  164. release_wamr_lldb_on_macos_universal:
  165. needs: [create_tag, create_release]
  166. uses: ./.github/workflows/build_wamr_lldb.yml
  167. with:
  168. runner: macos-latest
  169. arch: universal
  170. upload_url: ${{ needs.create_release.outputs.upload_url }}
  171. ver_num: ${{ needs.create_tag.outputs.new_ver}}