build v8 #148
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' | |
required: true | |
v8_revision: | |
description: 'V8 TAG(Branch) to build' | |
type: choice | |
options: | |
- "9.4.146.24" | |
- "10.6.194" | |
- "11.8.172" | |
- "11.8.172.18" | |
- "11.8.172.18-pgo" | |
default: '9.4.146.24' | |
required: true | |
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_linux: | |
description: 'Build for Linux platform' | |
type: boolean | |
default: true | |
required: false | |
do_publish: | |
description: 'Publish a release' | |
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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_android_arm_v8 | |
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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_android_arm_v7 | |
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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_android_x86_64 | |
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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_ohos_arm_v8 | |
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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_ohos_arm_v7 | |
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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_ohos_x86_64 | |
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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_linux | |
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: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_64.cmd ${{github.event.inputs.v8_revision}} | |
- 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_windows | |
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: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_64MD.cmd ${{github.event.inputs.v8_revision}} | |
- 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_windows_md | |
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 | |
- name: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_64MD_DLL_94.cmd ${{github.event.inputs.v8_revision}} | |
- 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_windows_md_dll | |
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: Run build script | |
shell: cmd | |
run: | | |
cd %GITHUB_WORKSPACE% | |
call npm i | |
call .\windows_32.cmd ${{github.event.inputs.v8_revision}} | |
- 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_windows_32 | |
path: ~/v8/v8/output/**/* | |
build_windows_v8cc_arm64: | |
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}} | |
- 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_windows_v8cc_arm64 | |
path: ~/v8/v8/output/**/* | |
build_windows_v8cc_arm64_ios: | |
name: Windows-v8cc-arm64-ios | |
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_ios.cmd ${{github.event.inputs.v8_revision}} | |
- 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_windows_v8cc_arm64_ios | |
path: ~/v8/v8/output/**/* | |
build_windows_v8cc_arm: | |
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}} | |
- 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_windows_v8cc_arm | |
path: ~/v8/v8/output/**/* | |
build_macos: | |
if: github.event.inputs.build_macos == 'true' | |
name: macOS | |
runs-on: macos-14 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew list --formula | grep 'python@3' | xargs brew uninstall --ignore-dependencies | |
brew install [email protected] | |
pip install virtualenv | |
pip install --upgrade setuptools | |
- 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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_macos | |
path: ~/v8/v8/output/**/* | |
build_macos_arm64: | |
if: github.event.inputs.build_macos == 'true' | |
name: macOS with apple m1 | |
runs-on: macos-14 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew list --formula | grep 'python@3' | xargs brew uninstall --ignore-dependencies | |
brew install [email protected] | |
pip install virtualenv | |
pip install --upgrade setuptools | |
- 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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_macos_arm64 | |
path: ~/v8/v8/output/**/* | |
build_macos_dll: | |
if: github.event.inputs.build_macos == 'true' | |
name: macOS-DLL | |
runs-on: macos-14 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew list --formula | grep 'python@3' | xargs brew uninstall --ignore-dependencies | |
brew install [email protected] | |
pip install virtualenv | |
pip install --upgrade setuptools | |
- 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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_macos_dll | |
path: ~/v8/v8/output/**/* | |
build_macos_arm64_dll: | |
if: github.event.inputs.build_macos == 'true' | |
name: macOS-DLL with apple m1 | |
runs-on: macos-14 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew list --formula | grep 'python@3' | xargs brew uninstall --ignore-dependencies | |
brew install [email protected] | |
pip install virtualenv | |
pip install --upgrade setuptools | |
- 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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_macos_arm64_dll | |
path: ~/v8/v8/output/**/* | |
build_ios: | |
if: github.event.inputs.build_ios == 'true' | |
name: iOS | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run build script | |
run: | | |
brew list --formula | grep 'python@3' | xargs brew uninstall --ignore-dependencies | |
curl -O https://repo.anaconda.com/archive/Anaconda3-2024.10-1-MacOSX-arm64.sh | |
chmod +x Anaconda3-2024.10-1-MacOSX-arm64.sh | |
./Anaconda3-2024.10-1-MacOSX-arm64.sh -b -p ./anaconda3 | |
./anaconda3/bin/conda init | |
source ~/.bash_profile | |
conda create -n myenv python=3.9.20 -y | |
conda activate myenv | |
python3 -c "import pipes" | |
pip3 install virtualenv | |
pip3 install --upgrade setuptools | |
python3 -c "import pkg_resources" | |
cd $GITHUB_WORKSPACE | |
npm i | |
bash ./ios.sh ${{github.event.inputs.v8_revision}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_ios | |
path: ~/v8/v8/output/**/* | |
build_ios_simulator: | |
if: github.event.inputs.build_ios == 'true' | |
name: iOS simulator | |
runs-on: macos-14 | |
steps: | |
- name: use python3.9 | |
run: | | |
brew list --formula | grep 'python@3' | xargs brew uninstall --ignore-dependencies | |
brew install [email protected] | |
pip install virtualenv | |
pip install --upgrade setuptools | |
- 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}} | |
mv ~/v8/v8/output/v8 ~/v8/v8/output/v8_${{github.event.inputs.v8_revision}} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: v8_bin_ios_simulator | |
path: ~/v8/v8/output/**/* | |
publish_with_ohos: | |
if: github.event.inputs.do_publish == 'true' && 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_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_arm,build_windows_v8cc_arm64,build_windows_v8cc_arm64_ios] | |
steps: | |
- uses: actions/download-artifact@v4 | |
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: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: V8_${{github.event.inputs.v8_revision}}_${{ github.event.inputs.tag_date }} | |
release_name: V8_${{github.event.inputs.v8_revision}}_${{ github.event.inputs.tag_date }} | |
draft: false | |
prerelease: false | |
- name: Upload V8 | |
#id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./v8_bin_${{github.event.inputs.v8_revision}}.tgz | |
asset_name: v8_bin_${{github.event.inputs.v8_revision}}.tgz | |
asset_content_type: application/tgz | |
publish_without_ohos: | |
if: github.event.inputs.do_publish == 'true' && 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_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_arm,build_windows_v8cc_arm64,build_windows_v8cc_arm64_ios] | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
path: v8_bin/ | |
merge-multiple: true | |
- 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: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: V8_${{github.event.inputs.v8_revision}}_${{ github.event.inputs.tag_date }} | |
release_name: V8_${{github.event.inputs.v8_revision}}_${{ github.event.inputs.tag_date }} | |
draft: false | |
prerelease: false | |
- name: Upload V8 | |
#id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./v8_bin_${{github.event.inputs.v8_revision}}.tgz | |
asset_name: v8_bin_${{github.event.inputs.v8_revision}}.tgz | |
asset_content_type: application/tgz | |