action.yml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. # Get URLs from:
  4. # - https://github.com/WebAssembly/wasi-sdk/releases
  5. # - https://github.com/WebAssembly/wabt/releases
  6. # Install WASI-SDK and WABT at /opt
  7. # /opt is the assumed location widely used in the project
  8. name: Install WASI-SDK and WABT
  9. description: A composite action to download and install wasi-sdk and wabt on Ubuntu, macOS.
  10. inputs:
  11. os:
  12. description: "Operating system to install on (ubuntu, macos)"
  13. required: true
  14. runs:
  15. using: "composite"
  16. steps:
  17. - name: Check Runner OS
  18. if: ${{ !startsWith(inputs.os, 'ubuntu') && !startsWith(inputs.os, 'windows') && !startsWith(inputs.os, 'macos') }}
  19. shell: bash
  20. run: |
  21. echo "::error title=⛔ error hint::Support Ubuntu, Windows, and macOS Only"
  22. exit 1
  23. - name: Set up wasi-sdk and wabt on Ubuntu
  24. if: ${{ startsWith(inputs.os, 'ubuntu') }}
  25. shell: bash
  26. run: |
  27. echo "Downloading wasi-sdk for Ubuntu..."
  28. sudo wget -O wasi-sdk.tar.gz --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz
  29. echo "Extracting wasi-sdk..."
  30. sudo tar -xf wasi-sdk.tar.gz
  31. sudo ln -sf wasi-sdk-25.0-x86_64-linux/ wasi-sdk
  32. echo "Downloading wabt for Ubuntu..."
  33. sudo wget -O wabt.tar.gz --progress=dot:giga https://github.com/WebAssembly/wabt/releases/download/1.0.37/wabt-1.0.37-ubuntu-20.04.tar.gz
  34. echo "Extracting wabt..."
  35. sudo tar -xf wabt.tar.gz
  36. sudo ln -sf wabt-1.0.37 wabt
  37. /opt/wasi-sdk/bin/clang --version
  38. /opt/wabt/bin/wasm-interp --version
  39. echo "::notice::wasi-sdk-25 and wabt-1.0.37 installed on ubuntu"
  40. working-directory: /opt
  41. - name: Set up wasi-sdk and wabt on macOS-13 (intel)
  42. if: ${{ inputs.os == 'macos-13' }}
  43. shell: bash
  44. run: |
  45. echo "Downloading wasi-sdk for macOS-13..."
  46. sudo wget -O wasi-sdk.tar.gz --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-macos.tar.gz
  47. echo "Extracting wasi-sdk..."
  48. sudo tar -xf wasi-sdk.tar.gz
  49. sudo ln -sf wasi-sdk-25.0-x86_64-macos wasi-sdk
  50. echo "Downloading wabt for macOS-13..."
  51. sudo wget -O wabt.tar.gz --progress=dot:giga https://github.com/WebAssembly/wabt/releases/download/1.0.36/wabt-1.0.36-macos-12.tar.gz
  52. echo "Extracting wabt..."
  53. sudo tar -xf wabt.tar.gz
  54. sudo ln -sf wabt-1.0.36 wabt
  55. /opt/wasi-sdk/bin/clang --version
  56. /opt/wabt/bin/wasm-interp --version
  57. echo "::notice::wasi-sdk-25 and wabt-1.0.36 installed on macos-13"
  58. working-directory: /opt
  59. - name: Set up wasi-sdk and wabt on macOS-14 (arm64)
  60. if: ${{ inputs.os == 'macos-14' }}
  61. shell: bash
  62. run: |
  63. echo "Downloading wasi-sdk for macOS-14..."
  64. sudo wget -O wasi-sdk.tar.gz --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-arm64-macos.tar.gz
  65. echo "Extracting wasi-sdk..."
  66. sudo tar -xf wasi-sdk.tar.gz
  67. sudo ln -sf wasi-sdk-25.0-arm64-macos wasi-sdk
  68. echo "Downloading wabt for macOS-14..."
  69. sudo wget -O wabt.tar.gz --progress=dot:giga https://github.com/WebAssembly/wabt/releases/download/1.0.37/wabt-1.0.37-macos-14.tar.gz
  70. echo "Extracting wabt..."
  71. sudo tar -xf wabt.tar.gz
  72. sudo ln -sf wabt-1.0.37 wabt
  73. /opt/wasi-sdk/bin/clang --version
  74. /opt/wabt/bin/wasm-interp --version
  75. echo "::notice::wasi-sdk-25 and wabt-1.0.37 installed on macos-14"
  76. working-directory: /opt
  77. - name: Set up wasi-sdk and wabt on Windows
  78. if: ${{ startsWith(inputs.os, 'windows') }}
  79. shell: bash
  80. run: |
  81. choco install -y wget
  82. mkdir -p /opt/wasi-sdk
  83. mkdir -p /opt/wabt
  84. echo "Downloading wasi-sdk for Windows..."
  85. wget -O wasi-sdk.tar.gz --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-windows.tar.gz
  86. echo "Extracting wasi-sdk..."
  87. tar --strip-components=1 -xf wasi-sdk.tar.gz -C /opt/wasi-sdk
  88. echo "Downloading wabt for Windows..."
  89. wget -O wabt.tar.gz --progress=dot:giga https://github.com/WebAssembly/wabt/releases/download/1.0.37/wabt-1.0.37-windows.tar.gz
  90. echo "Extracting wabt..."
  91. tar --strip-components=1 -xf wabt.tar.gz -C /opt/wabt
  92. /opt/wasi-sdk/bin/clang --version
  93. /opt/wabt/bin/wasm-interp --version
  94. echo "::notice::wasi-sdk-25 and wabt-1.0.37 installed on Windows"