release_process.yml 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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: check output
  34. run: echo 'the release note is "${{ env.RELEASE_NOTE }}"'
  35. - name: create a release
  36. id: create_release
  37. uses: actions/create-release@v1
  38. env:
  39. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  40. with:
  41. tag_name: ${{ needs.create_tag.outputs.new_tag }}
  42. release_name: ${{ needs.create_tag.outputs.new_tag }}
  43. prerelease: ${{ inputs.require_confirmation || needs.create_tag.outputs.minor_version }}
  44. draft: false
  45. body: ${{ env.RELEASE_NOTE }}
  46. #
  47. # WAMRC
  48. release_wamrc_on_ubuntu_2004:
  49. needs: [create_tag, create_release]
  50. uses: ./.github/workflows/build_wamrc.yml
  51. with:
  52. # can't take an env variable here
  53. llvm_cache_key: ubuntu-20.04-build-llvm_libraries_ex
  54. release: true
  55. runner: ubuntu-20.04
  56. upload_url: ${{ needs.create_release.outputs.upload_url }}
  57. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  58. release_wamrc_on_ubuntu_2204:
  59. needs: [create_tag, create_release]
  60. uses: ./.github/workflows/build_wamrc.yml
  61. with:
  62. # can't take an env variable here
  63. llvm_cache_key: ubuntu-22.04-build-llvm_libraries_ex
  64. release: true
  65. runner: ubuntu-22.04
  66. upload_url: ${{ needs.create_release.outputs.upload_url }}
  67. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  68. release_wamrc_on_ubuntu_macos:
  69. needs: [create_tag, create_release]
  70. uses: ./.github/workflows/build_wamrc.yml
  71. with:
  72. # can't take an env variable here
  73. llvm_cache_key: macos-latest-build-llvm_libraries_ex
  74. release: true
  75. runner: macos-latest
  76. upload_url: ${{ needs.create_release.outputs.upload_url }}
  77. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  78. #
  79. # IWASM
  80. release_iwasm_on_ubuntu_2004:
  81. needs: [create_tag, create_release]
  82. uses: ./.github/workflows/build_iwasm_release.yml
  83. with:
  84. cwd: product-mini/platforms/linux
  85. runner: ubuntu-20.04
  86. upload_url: ${{ needs.create_release.outputs.upload_url }}
  87. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  88. release_iwasm_on_ubuntu_2204:
  89. needs: [create_tag, create_release]
  90. uses: ./.github/workflows/build_iwasm_release.yml
  91. with:
  92. cwd: product-mini/platforms/linux
  93. runner: ubuntu-22.04
  94. upload_url: ${{ needs.create_release.outputs.upload_url }}
  95. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  96. release_iwasm_on_macos:
  97. needs: [create_tag, create_release]
  98. uses: ./.github/workflows/build_iwasm_release.yml
  99. with:
  100. cwd: product-mini/platforms/darwin
  101. runner: macos-latest
  102. upload_url: ${{ needs.create_release.outputs.upload_url }}
  103. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  104. #
  105. # WAMR_SDK
  106. release_wamr_sdk_on_ubuntu_2004:
  107. needs: [create_tag, create_release]
  108. uses: ./.github/workflows/build_wamr_sdk.yml
  109. with:
  110. config_file: wamr_config_ubuntu_release.cmake
  111. runner: ubuntu-20.04
  112. upload_url: ${{ needs.create_release.outputs.upload_url }}
  113. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  114. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz
  115. release_wamr_sdk_on_ubuntu_2204:
  116. needs: [create_tag, create_release]
  117. uses: ./.github/workflows/build_wamr_sdk.yml
  118. with:
  119. config_file: wamr_config_ubuntu_release.cmake
  120. runner: ubuntu-22.04
  121. upload_url: ${{ needs.create_release.outputs.upload_url }}
  122. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  123. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz
  124. release_wamr_sdk_on_macos:
  125. needs: [create_tag, create_release]
  126. uses: ./.github/workflows/build_wamr_sdk.yml
  127. with:
  128. config_file: wamr_config_macos_release.cmake
  129. runner: macos-latest
  130. upload_url: ${{ needs.create_release.outputs.upload_url }}
  131. ver_num: ${{ needs.create_tag.outputs.new_ver}}
  132. wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-macos.tar.gz
  133. #
  134. # vscode extension cross-platform
  135. release_wamr_ide_vscode_ext:
  136. needs: [create_tag, create_release]
  137. uses: ./.github/workflows/build_wamr_vscode_ext.yml
  138. with:
  139. upload_url: ${{ needs.create_release.outputs.upload_url }}
  140. ver_num: ${{ needs.create_tag.outputs.new_ver }}
  141. #
  142. # vscode extension docker images package
  143. release_wamr_ide_docker_images_package:
  144. needs: [create_tag, create_release]
  145. uses: ./.github/workflows/build_docker_images.yml
  146. with:
  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}}