-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
47 changed files
with
10,819 additions
and
607 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
name: <Native> Generate OH SDK Cache | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
oh_sdk_version: | ||
description: 'Openharmony SDK version' | ||
type: string | ||
default: '9' | ||
required: true | ||
|
||
jobs: | ||
generate_oh_sdk_cache: | ||
name: "Generate OH SDK cache" | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/setup-java@v3 | ||
id: setup-jdk | ||
with: | ||
distribution: 'zulu' | ||
java-version: '17' | ||
|
||
- name: Get oh sdk cache directory path | ||
id: oh-sdk-cache-dir-path | ||
run: | | ||
echo "cache dir: " | ||
echo "dir=$HOME/openharmony" >> $GITHUB_OUTPUT | ||
- name: Output cache dir | ||
run: | | ||
echo "Output cache dir: ${{ steps.oh-sdk-cache-dir-path.outputs.dir }}" | ||
- name: Cache OH SDK | ||
id: cache-oh-sdk | ||
uses: actions/cache@v3 | ||
env: | ||
cache-name: cache-oh-sdk-${{ github.event.inputs.oh_sdk_version }} | ||
with: | ||
path: ${{ steps.oh-sdk-cache-dir-path.outputs.dir }} | ||
key: ${{ runner.os }}-build-${{ env.cache-name }} | ||
|
||
- name: Add package.json | ||
run: | | ||
echo "{}" > package.json | ||
echo "{\"name\": \"tests\",\"lockfileVersion\": 3,\"requires\": true,\"packages\": {}}" > package-lock.json | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 14 | ||
cache: 'npm' | ||
|
||
- if: ${{ steps.cache-oh-sdk.outputs.cache-hit != 'true' }} | ||
name: No Cache found, install oh sdk | ||
continue-on-error: false | ||
run: | | ||
if [ ! -d "$HOME/openharmony" ]; then | ||
mkdir -p $HOME/openharmony | ||
echo "Download commandline-tools-linux.zip ..." | ||
curl -o commandline-tools-linux.zip "https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_package_901_9/b1/v3/E6zhv5UFQ2-inIwNJhTN6Q/commandline-tools-linux-2.0.0.2.zip?HW-CC-KV=V1&HW-CC-Date=20230621T074401Z&HW-CC-Expire=315360000&HW-CC-Sign=621224257B02079B1E76C0A56FDF21483400B1E3556213F88DC79BC9BE7D595D" | ||
echo "Unzip commandline-tools-linux.zip ..." | ||
unzip commandline-tools-linux.zip -d $HOME/openharmony > /dev/null | ||
cd $HOME/openharmony | ||
ls -l | ||
cd command-line-tools | ||
echo "=============== PATCHING sdkmanager/bin/sdkmgr file ===============" | ||
sed -i "[email protected][email protected]=UTF-8 -Duser.country=CN@g" ./sdkmanager/bin/sdkmgr | ||
cd bin | ||
./sdkmgr list | ||
echo "=============== INSTALL HOS toolchains:${{ github.event.inputs.oh_sdk_version }} ===============" | ||
./sdkmgr install toolchains:${{ github.event.inputs.oh_sdk_version }} --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK ets:${{ github.event.inputs.oh_sdk_version }} ===============" | ||
./sdkmgr install OpenHarmony/ets:${{ github.event.inputs.oh_sdk_version }} --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK js:${{ github.event.inputs.oh_sdk_version }} ===============" | ||
./sdkmgr install OpenHarmony/js:${{ github.event.inputs.oh_sdk_version }} --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK native:${{ github.event.inputs.oh_sdk_version }} ===============" | ||
./sdkmgr install OpenHarmony/native:${{ github.event.inputs.oh_sdk_version }} --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK toolchains:${{ github.event.inputs.oh_sdk_version }} ===============" | ||
./sdkmgr install OpenHarmony/toolchains:${{ github.event.inputs.oh_sdk_version }} --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK DONE ===============" | ||
./sdkmgr list | ||
fi |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
name: <Native> Generate Vulkan SDK Cache | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
vulkan_sdk_version: | ||
description: 'Vulkan SDK version' | ||
type: string | ||
default: '1.2.189.0' | ||
required: true | ||
|
||
jobs: | ||
generate_vulkan_sdk_cache: | ||
name: "Generate Vulkan SDK cache" | ||
runs-on: windows-2019 | ||
steps: | ||
- name: Setup Vulkan SDK | ||
uses: humbletim/[email protected] | ||
with: | ||
vulkan-query-version: ${{ github.event.inputs.vulkan_sdk_version }} | ||
vulkan-components: Vulkan-Headers, Vulkan-Loader | ||
vulkan-use-cache: true |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -206,6 +206,157 @@ jobs: | |
df -h | ||
echo "Compile Android Debug Done!" | ||
compile_openharmony: | ||
name: "Openharmony" | ||
if: | ||
(! contains(github.event.pull_request.body, '[X] does not change any runtime related code or build configuration')) | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Download external libraries | ||
shell: bash | ||
run: | | ||
EXT_VERSION=`node ./.github/workflows/get-native-external-version.js` | ||
git clone --branch $EXT_VERSION --depth 1 https://github.com/cocos/cocos-engine-external native/external | ||
- uses: actions/setup-java@v3 | ||
id: setup-jdk | ||
with: | ||
distribution: 'zulu' | ||
java-version: '17' | ||
- name: Get oh sdk cache directory path | ||
id: oh-sdk-cache-dir-path | ||
run: | | ||
echo "cache dir: " | ||
echo "dir=$HOME/openharmony" >> $GITHUB_OUTPUT | ||
- name: Output cache dir | ||
run: | | ||
echo "Output cache dir: ${{ steps.oh-sdk-cache-dir-path.outputs.dir }}" | ||
- name: Cache OH SDK | ||
id: cache-oh-sdk | ||
uses: actions/cache@v3 | ||
env: | ||
cache-name: cache-oh-sdk-9 | ||
with: | ||
path: ${{ steps.oh-sdk-cache-dir-path.outputs.dir }} | ||
key: ${{ runner.os }}-build-${{ env.cache-name }} | ||
|
||
- name: Add package.json | ||
run: | | ||
echo "{}" > package.json | ||
echo "{\"name\": \"tests\",\"lockfileVersion\": 3,\"requires\": true,\"packages\": {}}" > package-lock.json | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 14 | ||
cache: 'npm' | ||
|
||
- if: ${{ steps.cache-oh-sdk.outputs.cache-hit != 'true' }} | ||
name: No Cache found, install oh sdk | ||
continue-on-error: false | ||
run: | | ||
if [ ! -d "$HOME/openharmony" ]; then | ||
mkdir -p $HOME/openharmony | ||
echo "Download commandline-tools-linux.zip ..." | ||
curl -o commandline-tools-linux.zip "https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_package_901_9/b1/v3/E6zhv5UFQ2-inIwNJhTN6Q/commandline-tools-linux-2.0.0.2.zip?HW-CC-KV=V1&HW-CC-Date=20230621T074401Z&HW-CC-Expire=315360000&HW-CC-Sign=621224257B02079B1E76C0A56FDF21483400B1E3556213F88DC79BC9BE7D595D" | ||
echo "Unzip commandline-tools-linux.zip ..." | ||
unzip commandline-tools-linux.zip -d $HOME/openharmony > /dev/null | ||
cd $HOME/openharmony | ||
ls -l | ||
cd command-line-tools | ||
echo "=============== PATCHING sdkmanager/bin/sdkmgr file ===============" | ||
sed -i "[email protected][email protected]=UTF-8 -Duser.country=CN@g" ./sdkmanager/bin/sdkmgr | ||
cd bin | ||
./sdkmgr list | ||
echo "=============== INSTALL HOS toolchains:9 ===============" | ||
./sdkmgr install toolchains:9 --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK ets:9 ===============" | ||
./sdkmgr install OpenHarmony/ets:9 --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK js:9 ===============" | ||
./sdkmgr install OpenHarmony/js:9 --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK native:9 ===============" | ||
./sdkmgr install OpenHarmony/native:9 --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK toolchains:9 ===============" | ||
./sdkmgr install OpenHarmony/toolchains:9 --accept-license > /dev/null | ||
echo "=============== INSTALL OH SDK DONE ===============" | ||
./sdkmgr list | ||
fi | ||
- name: Compile for Openharmony | ||
run: | | ||
which node | ||
which npm | ||
which java | ||
node -v | ||
npm -v | ||
java --version | ||
echo "=============== list files in oh sdk ($HOME/openharmony) ===============" | ||
pushd $HOME/openharmony | ||
ls -l | ||
popd | ||
NATIVE_ROOT=$GITHUB_WORKSPACE/native | ||
echo "Compiling Openharmony ... " | ||
cd $GITHUB_WORKSPACE/templates/openharmony | ||
echo "message(STATUS \"hook before \${CC_TARGET_NAME}\")" >> Pre-Sample.cmake | ||
echo "message(STATUS \"hook after \${CC_TARGET_NAME}\")" >> Post-Sample.cmake | ||
mkdir -p build-oh/proj | ||
touch build-oh/proj/cfg.cmake | ||
echo "set(CC_USE_GLES3 ON)" >> build-oh/proj/cfg.cmake | ||
echo "set(CC_USE_VULKAN OFF)" >> build-oh/proj/cfg.cmake | ||
echo "set(CC_USE_GLES2 ON)" >> build-oh/proj/cfg.cmake | ||
echo "set(USE_WEBSOCKET_SERVER OFF)" >> build-oh/proj/cfg.cmake | ||
echo "set(CMAKE_CXX_STANDARD_REQUIRED ON)" >> build-oh/proj/cfg.cmake | ||
echo "set(COCOS_X_PATH $NATIVE_ROOT)" >> build-oh/proj/cfg.cmake | ||
echo "set(CC_EXECUTABLE_NAME \"\")" >> build-oh/proj/cfg.cmake | ||
echo "set(USE_SE_V8 OFF)" >> build-oh/proj/cfg.cmake | ||
echo "set(USE_SE_NAPI ON)" >> build-oh/proj/cfg.cmake | ||
echo "=============== cat build-oh/proj/cfg.cmake ===============" | ||
cat build-oh/proj/cfg.cmake | ||
mkdir -p build-oh/assets | ||
ASSET_DIR=$GITHUB_WORKSPACE/templates/openharmony/build-oh | ||
echo "=============== HACK ./entry/build-profile.json5 ===============" | ||
sed -i "s@[^-]DRES_DIR[^=]@$ASSET_DIR@g" ./entry/build-profile.json5 | ||
sed -i "s@[^-]DCOMMON_DIR[^=]@$GITHUB_WORKSPACE/templates/common@g" ./entry/build-profile.json5 | ||
# To speedup CI, compile arm64-v8a only | ||
sed -i "s@\"armeabi-v7a\",@@g" ./entry/build-profile.json5 | ||
echo "entry/build-profile.json5: " | ||
cat ./entry/build-profile.json5 | ||
echo "=============== HACK ./hvigor/hvigor-wrapper.js ===============" | ||
sed -i "s@HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,\[\"install\"\]@HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,\[\"install\", \"--lockfile=false\"\]@g" ./hvigor/hvigor-wrapper.js | ||
echo "=============== SET NPM OH REGISTRY ===============" | ||
echo "@ohos:registry=https://repo.harmonyos.com/npm/" >> ~/.npmrc | ||
npm config get @ohos:registry | ||
npm config get registry | ||
echo "=============== UPDATE local.properties ===============" | ||
echo "nodejs.dir=/usr/bin" >> local.properties | ||
echo "hwsdk.dir=$HOME/openharmony/hwsdk" >> local.properties | ||
echo "=============== UPDATE ./hvigor/hvigor-config.json5 ===============" | ||
echo "{\"hvigorVersion\":\"3.0.2\",\"dependencies\":{\"@ohos/hvigor-ohos-plugin\":\"3.0.2\"}}" > ./hvigor/hvigor-config.json5 | ||
echo "=============== Do not import game.ts for cocos_worker.ts ===============" | ||
sed -i '/<% if(!useV8) { %>/,/<% } %>/d' ./entry/src/main/ets/workers/cocos_worker.ts | ||
echo "=============== EXECUTE hvigorw ===============" | ||
./hvigorw clean -i | ||
./hvigorw --stop-daemon -i | ||
./hvigorw assembleHap -p debuggable=true --no-daemon -d | ||
#./hvigorw default@ProcessLibs -p debuggable=true --no-daemon -d | ||
echo "=============== EXECUTE hvigorw DONE ===============" | ||
compile_mac_x86_64: | ||
name: "MacOS x86_64" | ||
if: | ||
|
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
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
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
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
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
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
Oops, something went wrong.