build v8 #191
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build v8 | |
on: | |
workflow_dispatch: | |
inputs: | |
tag_date: | |
description: 'tag date' | |
type: string | |
default: "" | |
required: false | |
v8_revision: | |
description: 'V8 TAG(Branch) to build' | |
type: choice | |
options: | |
- "9.4.146.24" | |
- "10.6.194" | |
- "11.8.172" | |
default: '9.4.146.24' | |
required: true | |
wrap_new: | |
description: 'wrap new/delete' | |
type: choice | |
options: | |
- "with_new_wrap" | |
- "" | |
default: "" | |
required: false | |
build_android: | |
description: 'Build for Android platform' | |
type: boolean | |
default: true | |
required: false | |
build_ohos: | |
description: 'Build for OHOS platform' | |
type: boolean | |
default: true | |
required: false | |
build_ios: | |
description: 'Build for iOS platform' | |
type: boolean | |
default: true | |
required: false | |
build_windows: | |
description: 'Build for Windows platform' | |
type: boolean | |
default: true | |
required: false | |
build_macos: | |
description: 'Build for MacOS platform' | |
type: boolean | |
default: true | |
required: false | |
build_macos_silicon: | |
description: 'Build for MacOS(silicon) platform' | |
type: boolean | |
default: true | |
required: false | |
build_linux: | |
description: 'Build for Linux platform' | |
type: boolean | |
default: true | |
required: false | |
jobs: | |
build_android_arm_v8: | |
if: github.event.inputs.build_android == 'true' | |
name: Android (arm64-v8a) | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./android_armv8.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_android_arm_v7: | |
if: github.event.inputs.build_android == 'true' | |
name: Android (armeabi-v7a) | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./android_armv7.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_android_x86_64: | |
if: github.event.inputs.build_android == 'true' | |
name: Android (x86_64) | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./android_x64.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_ohos_arm_v8: | |
if: github.event.inputs.v8_revision != '8.4.371.19' && github.event.inputs.build_ohos == 'true' | |
name: OHOS (arm64-v8a) | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install NDK | |
run: | | |
cd ~ | |
curl -O https://repo.huaweicloud.com/harmonyos/os/4.1-Release/ohos-sdk-windows_linux-public.tar.gz | |
tar xvfz ohos-sdk-windows_linux-public.tar.gz | |
rm ohos-sdk-windows_linux-public.tar.gz | |
rm -rf ohos-sdk/windows | |
cd ohos-sdk/linux | |
unzip -o -d ./ native-linux-x64-4.1.7.5-Release.zip | |
rm *.zip | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
OHOS_NDK_HOME=~/ohos-sdk/linux/native bash ./ohos_armv8.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_ohos_arm_v7: | |
if: github.event.inputs.v8_revision != '8.4.371.19' && github.event.inputs.build_ohos == 'true' | |
name: OHOS (armeabi-v7a) | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install NDK | |
run: | | |
cd ~ | |
curl -O https://repo.huaweicloud.com/harmonyos/os/4.1-Release/ohos-sdk-windows_linux-public.tar.gz | |
tar xvfz ohos-sdk-windows_linux-public.tar.gz | |
rm ohos-sdk-windows_linux-public.tar.gz | |
rm -rf ohos-sdk/windows | |
cd ohos-sdk/linux | |
unzip -o -d ./ native-linux-x64-4.1.7.5-Release.zip | |
rm *.zip | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
OHOS_NDK_HOME=~/ohos-sdk/linux/native bash ./ohos_armv7.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_ohos_x86_64: | |
if: github.event.inputs.v8_revision != '8.4.371.19' && github.event.inputs.build_ohos == 'true' | |
name: OHOS (x86_64) | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install NDK | |
run: | | |
cd ~ | |
curl -O https://repo.huaweicloud.com/harmonyos/os/4.1-Release/ohos-sdk-windows_linux-public.tar.gz | |
tar xvfz ohos-sdk-windows_linux-public.tar.gz | |
rm ohos-sdk-windows_linux-public.tar.gz | |
rm -rf ohos-sdk/windows | |
cd ohos-sdk/linux | |
unzip -o -d ./ native-linux-x64-4.1.7.5-Release.zip | |
rm *.zip | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
OHOS_NDK_HOME=~/ohos-sdk/linux/native bash ./ohos_x64.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_linux: | |
if: github.event.inputs.build_linux == 'true' | |
name: Linux | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./linux.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_linux_arm64: | |
if: github.event.inputs.build_linux == 'true' | |
name: Linux_arm64 | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./linux_arm64.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_windows: | |
if: github.event.inputs.build_windows == 'true' | |
name: Windows | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install llvm | |
if: ${{ github.event.inputs.wrap_new == 'true' }} | |
shell: pwsh | |
run: choco install llvm | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_64.cmd ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
- name: Rename | |
shell: bash | |
run: | | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_windows_md: | |
if: github.event.inputs.build_windows == 'true' | |
name: Windows-MD | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install llvm | |
if: ${{ github.event.inputs.wrap_new == 'true' }} | |
shell: pwsh | |
run: choco install llvm | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_64MD.cmd ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
- name: Rename | |
shell: bash | |
run: | | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_windows_md_dll: | |
if: github.event.inputs.build_windows == 'true' | |
name: Windows-MD-DLL | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_64MD_DLL_94.cmd ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
- name: Rename | |
shell: bash | |
run: | | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_windows_32: | |
if: github.event.inputs.build_windows == 'true' | |
name: Windows-32 | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install llvm | |
if: ${{ github.event.inputs.wrap_new == 'true' }} | |
shell: pwsh | |
run: choco install llvm | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_32.cmd ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
- name: Rename | |
shell: bash | |
run: | | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_windows_v8cc_arm64: | |
if: github.event.inputs.build_windows == 'true' | |
name: Windows-v8cc-arm64 | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_v8cc_arm64.cmd ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
- name: Rename | |
shell: bash | |
run: | | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_windows_v8cc_arm: | |
if: github.event.inputs.build_windows == 'true' | |
name: Windows-v8cc-arm | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_v8cc_arm.cmd ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
- name: Rename | |
shell: bash | |
run: | | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_macos: | |
if: github.event.inputs.build_macos == 'true' | |
name: macOS | |
runs-on: macos-12 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew install [email protected] | |
pip install virtualenv | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
export PATH=/usr/local/opt/[email protected]/libexec/bin:$PATH | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./macos.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_macos_arm64: | |
if: github.event.inputs.build_macos == 'true' && github.event.inputs.build_macos_silicon == 'true' | |
name: macOS with apple m1 | |
runs-on: macos-12 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew install [email protected] | |
pip install virtualenv | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
export PATH=/usr/local/opt/[email protected]/libexec/bin:$PATH | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./macos_arm64.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_macos_dll: | |
if: github.event.inputs.build_macos == 'true' | |
name: macOS-DLL | |
runs-on: macos-12 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew install [email protected] | |
pip install virtualenv | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
export PATH=/usr/local/opt/[email protected]/libexec/bin:$PATH | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./macos_DLL.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_macos_arm64_dll: | |
if: github.event.inputs.build_macos == 'true' && github.event.inputs.build_macos_silicon == 'true' | |
name: macOS-DLL with apple m1 | |
runs-on: macos-12 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew install [email protected] | |
pip install virtualenv | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
export PATH=/usr/local/opt/[email protected]/libexec/bin:$PATH | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./macos_arm64_DLL.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_ios: | |
if: github.event.inputs.build_ios == 'true' | |
name: iOS | |
runs-on: macos-12 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew install [email protected] | |
pip install virtualenv | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
export PATH=/usr/local/opt/[email protected]/libexec/bin:$PATH | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./ios.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
build_ios_simulator: | |
if: github.event.inputs.build_ios == 'true' | |
name: iOS simulator | |
runs-on: macos-12 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew install [email protected] | |
pip install virtualenv | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
export PATH=/usr/local/opt/[email protected]/libexec/bin:$PATH | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./ios_simulator.sh ${{github.event.inputs.v8_revision}} ${{github.event.inputs.wrap_new}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin | |
path: ~/v8/v8/output/**/* | |
publish_with_ohos: | |
if: github.event.inputs.tag_date != '' && github.event.inputs.build_ohos == 'true' | |
runs-on: ubuntu-20.04 | |
needs: [build_android_arm_v8,build_android_arm_v7,build_android_x86_64,build_linux,build_linux_arm64,build_windows,build_windows_32,build_windows_md,build_macos_arm64,build_macos_arm64_dll,build_ios_simulator,build_macos,build_ios,build_windows_md_dll,build_macos_dll,build_ohos_arm_v8,build_ohos_arm_v7,build_ohos_x86_64,build_windows_v8cc_arm64,build_windows_v8cc_arm] | |
steps: | |
- uses: actions/[email protected] | |
with: | |
name: v8_bin | |
path: v8_bin/ | |
- name: Create Release Asset | |
run: | | |
cd v8_bin/ && tar cvfz ../v8_bin_${{github.event.inputs.v8_revision}}.tgz v8_${{github.event.inputs.v8_revision}} && cd - | |
- name: Create Release | |
id: create_release | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: V8_${{github.event.inputs.v8_revision}}_${{github.event.inputs.wrap_new}}_${{ github.event.inputs.tag_date }} | |
name: V8_${{github.event.inputs.v8_revision}}_${{github.event.inputs.wrap_new}}_${{ github.event.inputs.tag_date }} | |
draft: false | |
prerelease: false | |
files: ./v8_bin_${{github.event.inputs.v8_revision}}.tgz | |
publish_without_ohos: | |
if: github.event.inputs.tag_date != '' && github.event.inputs.build_ohos == 'false' | |
runs-on: ubuntu-20.04 | |
needs: [build_android_arm_v8,build_android_arm_v7,build_android_x86_64,build_linux,build_linux_arm64,build_windows,build_windows_32,build_windows_md,build_macos_arm64,build_macos_arm64_dll,build_ios_simulator,build_macos,build_ios,build_windows_md_dll,build_macos_dll,build_windows_v8cc_arm64,build_windows_v8cc_arm] | |
steps: | |
- uses: actions/[email protected] | |
with: | |
name: v8_bin | |
path: v8_bin/ | |
- name: Create Release Asset | |
run: | | |
cd v8_bin/ && tar cvfz ../v8_bin_${{github.event.inputs.v8_revision}}.tgz v8_${{github.event.inputs.v8_revision}} && cd - | |
- name: Create Release | |
id: create_release | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: V8_${{github.event.inputs.v8_revision}}_${{github.event.inputs.wrap_new}}_${{ github.event.inputs.tag_date }} | |
name: V8_${{github.event.inputs.v8_revision}}_${{github.event.inputs.wrap_new}}_${{ github.event.inputs.tag_date }} | |
draft: false | |
prerelease: false | |
files: ./v8_bin_${{github.event.inputs.v8_revision}}.tgz | |