Skip to content

试下不用make来build #46

试下不用make来build

试下不用make来build #46

name: build quickjs backend with v8_qjs namespace
on:
push:
workflow_dispatch:
inputs:
tag_date:
description: 'tag date'
required: true
is_build_for_ohos:
description: 'Build for harmony platform'
type: boolean
default: true
required: false
jobs:
build_macos:
name: macOS
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_osx.sh
sh ./make_osx.sh 1
cp -r include $GITHUB_WORKSPACE/qjs/quickjs/Inc
cp -r puer-build.json $GITHUB_WORKSPACE/qjs/quickjs/
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_macos_dll:
name: macOS
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_osx_dylib.sh
sh ./make_osx_dylib.sh 1
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_macos_arm64:
name: macOS_arm64
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_osx_arm64.sh
sh ./make_osx_arm64.sh 1
cp -r include $GITHUB_WORKSPACE/qjs/quickjs/Inc
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_ios:
name: iOS
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_ios.sh
sh ./make_ios.sh 1
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_android:
name: Android
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Install NDK
run: |
cd ~
wget -O NDK -q https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip
sudo apt install unzip -y
unzip -q NDK
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_android.sh
ANDROID_NDK=~/android-ndk-r21b ./make_android.sh 1
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_ohos:
if: github.event.inputs.is_build_for_ohos == 'true'
name: OHOS
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- 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
cd ohos-sdk/linux
unzip -o -d ./ native-linux-x64-4.1.7.5-Release.zip
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_ohos.sh
OHOS_NDK_HOME=~/ohos-sdk/linux/native ./make_ohos.sh 1
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_linux:
name: Linux
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Install LibC++
run: |
sudo apt-get update
sudo apt-get install clang
sudo apt-get install build-essential
sudo apt-get install libc++-dev
sudo apt-get install libc++abi-dev
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_linux64.sh
./make_linux64.sh 1
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_wasm:
name: wasm
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Install LibC++
run: |
sudo apt-get update
sudo apt-get install clang
sudo apt-get install build-essential
sudo apt-get install libc++-dev
sudo apt-get install libc++abi-dev
- name: Run build script
run: |
cd $GITHUB_WORKSPACE
chmod +x make_wasm.sh
./make_wasm.sh 1
cp -r $GITHUB_WORKSPACE/qjs ~/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: ~/qjs/**/*
build_window_dll:
name: Windows
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
with:
update: true
install: 'cmake make mingw-w64-x86_64-gcc mingw-w64-x86_64-dlfcn'
- shell: msys2 {0}
run: |
sh ./make_win.sh
- name: Build
run: |
cd win
.\make_win64.bat 1
- uses: ilammy/msvc-dev-cmd@v1
- name: Merge Libs
run: |
cd win
LIB.EXE /OUT:quickjs.dll.lib ..\build\libquickjs.dll.a build\Release\v8qjs.lib
- name: Prepare
shell: msys2 {0}
run: |
mkdir -p qjs/quickjs/Lib/Win64/
cp win/quickjs.dll.lib qjs/quickjs/Lib/Win64/
cp build/msys-quickjs.dll qjs/quickjs/Lib/Win64/
cp build/libquickjs.dll.a qjs/quickjs/Lib/Win64/
cp /mingw64/bin/libgcc_s_seh-1.dll qjs/quickjs/Lib/Win64/
cp /mingw64/bin/libwinpthread-1.dll qjs/quickjs/Lib/Win64/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: qjs/**/*
build_window_dll_md:
name: Windows MD
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
- name: Insatll MSVC
uses: microsoft/[email protected]
- uses: msys2/setup-msys2@v2
with:
update: true
install: 'cmake make mingw-w64-x86_64-gcc mingw-w64-x86_64-dlfcn'
- shell: msys2 {0}
run: |
sh ./make_win.sh
- name: Build
run: |
cd win
.\make_win64md.bat 1
- uses: ilammy/msvc-dev-cmd@v1
- name: Merge Libs
run: |
cd win
LIB.EXE /OUT:quickjs.dll.lib ..\build\libquickjs.dll.a build\Release\v8qjs.lib
- name: Prepare
shell: msys2 {0}
run: |
mkdir -p qjs/quickjs/Lib/Win64MD/
cp win/quickjs.dll.lib qjs/quickjs/Lib/Win64MD/
cp build/msys-quickjs.dll qjs/quickjs/Lib/Win64MD/
cp build/libquickjs.dll.a qjs/quickjs/Lib/Win64MD/
cp /mingw64/bin/libgcc_s_seh-1.dll qjs/quickjs/Lib/Win64MD/
cp /mingw64/bin/libwinpthread-1.dll qjs/quickjs/Lib/Win64MD/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: qjs/**/*
build_window_dll_md_dll:
name: Windows MD_dll
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
- name: Insatll MSVC
uses: microsoft/[email protected]
- uses: msys2/setup-msys2@v2
with:
update: true
install: 'cmake make mingw-w64-x86_64-gcc mingw-w64-x86_64-dlfcn'
- shell: msys2 {0}
run: |
sh ./make_win.sh
- name: Build
run: |
cd win
.\make_win64md_dll.bat 1
- uses: ilammy/msvc-dev-cmd@v1
- name: Merge Libs
run: |
cd win
LIB.EXE /OUT:quickjs.dll.lib ..\build\libquickjs.dll.a build\Release\v8qjs.lib
- name: Prepare
shell: msys2 {0}
run: |
mkdir -p qjs/quickjs/Lib/Win64DLL/
cp win/quickjs.dll.lib qjs/quickjs/Lib/Win64DLL/
cp win/build/Release/v8qjs.dll qjs/quickjs/Lib/Win64DLL/
cp build/msys-quickjs.dll qjs/quickjs/Lib/Win64DLL/
cp build/libquickjs.dll.a qjs/quickjs/Lib/Win64DLL/
cp /mingw64/bin/libgcc_s_seh-1.dll qjs/quickjs/Lib/Win64DLL/
cp /mingw64/bin/libwinpthread-1.dll qjs/quickjs/Lib/Win64DLL/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: qjs/**/*
build_window_dll32:
name: Windows32
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: true
install: 'cmake make mingw-w64-i686-gcc mingw-w64-i686-dlfcn'
- shell: msys2 {0}
run: |
sh ./make_win.sh
- name: Build
run: |
cd win
.\make_win32.bat 1
- uses: ilammy/msvc-dev-cmd@v1
- name: Merge Libs
run: |
cd win
LIB.EXE /OUT:quickjs.dll.lib ..\build\libquickjs.dll.a build\Release\v8qjs.lib
- name: Prepare
shell: msys2 {0}
run: |
mkdir -p qjs/quickjs/Lib/Win32/
cp win/quickjs.dll.lib qjs/quickjs/Lib/Win32/
cp build/msys-quickjs.dll qjs/quickjs/Lib/Win32/
cp build/libquickjs.dll.a qjs/quickjs/Lib/Win32/
cp /mingw32/bin/libgcc_s_dw2-1.dll qjs/quickjs/Lib/Win32/
cp /mingw32/bin/libwinpthread-1.dll qjs/quickjs/Lib/Win32/
- uses: actions/upload-artifact@v3
with:
name: qjs_v8_bin
path: qjs/**/*
publish:
runs-on: ubuntu-latest
if: ${{ github.event.inputs.tag_date != '' }}
needs: [build_android,build_window_dll,build_window_dll32,build_window_dll_md,build_window_dll_md_dll,build_macos,build_macos_dll,build_macos_arm64,build_ios,build_linux,build_ohos,build_wasm]
steps:
- uses: actions/download-artifact@v1
with:
name: qjs_v8_bin
path: qjs_v8_bin/
- name: Create Release Asset
run: |
cd qjs_v8_bin/ && mv quickjs quickjs_ns && tar cvfz ../qjs_v8_bin.tgz quickjs_ns && cd -
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: QJS_CN_${{ github.event.inputs.tag_date }}
release_name: QJS_CN_${{ github.event.inputs.tag_date }}
draft: false
prerelease: false
- name: Upload LIB
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./qjs_v8_bin.tgz
asset_name: qjs_v8_bin.tgz
asset_content_type: application/tgz