build_wamr_sdk.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. name: build wamr-sdk
  4. on:
  5. workflow_call:
  6. inputs:
  7. arch:
  8. description: arch of the release
  9. type: string
  10. required: false
  11. default: x86_64
  12. config_file:
  13. description: warm-sdk config file path
  14. type: string
  15. required: true
  16. runner:
  17. description: OS of compilation
  18. type: string
  19. required: true
  20. upload_url:
  21. description: upload binary assets to the URL of release
  22. type: string
  23. required: true
  24. ver_num:
  25. description: a semantic version number
  26. type: string
  27. required: true
  28. wasi_sdk_url:
  29. description: download WASI_SDK from this URL
  30. type: string
  31. required: true
  32. wamr_app_framework_url:
  33. description: download WAMR app framework to get wamr_sdk
  34. type: string
  35. required: true
  36. permissions:
  37. contents: read
  38. jobs:
  39. build:
  40. runs-on: ${{ inputs.runner }}
  41. permissions:
  42. contents: write # for uploading release artifacts
  43. steps:
  44. - uses: actions/checkout@v6.0.1
  45. - name: download wamr-app-framework
  46. run: |
  47. git clone ${{ inputs.wamr_app_framework_url }}
  48. cd wamr-app-framework
  49. git submodule init
  50. git submodule update
  51. working-directory: wamr-sdk
  52. - name: download and install wasi-sdk
  53. run: |
  54. cd /opt
  55. basename=$(basename ${{ inputs.wasi_sdk_url }})
  56. sudo wget --progress=dot:giga ${{ inputs.wasi_sdk_url }}
  57. sudo tar -xzf ${basename}
  58. sudo rm ${basename}
  59. sudo mv wasi-sdk-* wasi-sdk
  60. - name: download dependencies
  61. run: |
  62. cd ./wamr-app-framework/deps
  63. ./download.sh
  64. working-directory: wamr-sdk
  65. - name: generate wamr-sdk release
  66. run: |
  67. cd ./wamr-app-framework/wamr-sdk
  68. ./build_sdk.sh -n wamr-sdk -x $(pwd)/${{ inputs.config_file }}
  69. working-directory: wamr-sdk
  70. - name: compress the binary
  71. run: |
  72. cd wamr-app-framework/wamr-sdk/out
  73. tar czf wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz wamr-sdk
  74. zip -r wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.zip wamr-sdk
  75. working-directory: wamr-sdk
  76. - name: upload release tar.gz
  77. uses: actions/upload-release-asset@v1
  78. env:
  79. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  80. with:
  81. upload_url: ${{ inputs.upload_url }}
  82. asset_path: wamr-sdk/wamr-app-framework/wamr-sdk/out/wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz
  83. asset_name: wamr-sdk-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.tar.gz
  84. asset_content_type: application/x-gzip
  85. - name: upload release zip
  86. uses: actions/upload-release-asset@v1
  87. env:
  88. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  89. with:
  90. upload_url: ${{ inputs.upload_url }}
  91. asset_path: wamr-sdk/wamr-app-framework/wamr-sdk/out/wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.zip
  92. asset_name: wamr-sdk-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.zip
  93. asset_content_type: application/zip
  94. - name: delete wamr-app-framework
  95. run: |
  96. rm -rf wamr-app-framework
  97. working-directory: wamr-sdk