Skip to content

Add Build Verification CI Workflow #1

Add Build Verification CI Workflow

Add Build Verification CI Workflow #1

Workflow file for this run

name: Verify Build
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
name: Build and Verify Application
runs-on: macos-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install tree command
run: brew install tree
- name: Setup signing certificates and keystore
# This step extracts the required signing materials from a base64 encoded zip stored in GitHub Secrets
# The zip contains:
# - .cer file: Developer certificate for signing
# - .p7b file: Profile for app provisioning
# - .p12 file: Keystore containing private key
run: |
# Decode base64 secret to zip file
echo "${{ secrets.ONIRO_APP_SIGNATURE_ZIP }}" | base64 -d > secrets.zip
# Extract files while preserving directory structure
unzip -o secrets.zip
# Cleanup temporary zip file
rm secrets.zip
# Display extracted files for verification
echo "=== Extracted Signing Materials ==="
tree .secret -L 4
- name: Set up tools and dependencies
uses: Snapp-Mobile/oh-action@main
- name: Verify Installation
run: |
echo "=== Environment Variables ==="
echo "PATH: $PATH"
echo "OHOS_BASE_SDK_HOME: $OHOS_BASE_SDK_HOME"
echo "CMD_PATH: $CMD_PATH"
echo "=== OHPM Installation ==="
which ohpm
ohpm -v
echo "=== Hvigor Installation ==="
which hvigorw
hvigorw --version
echo "=== Installation Directories ==="
echo "Command-line Tools:"
tree -L 3 $CMD_PATH
echo "OpenHarmony SDK:"
tree -L 3 $OHOS_BASE_SDK_HOME
echo "=== Node.js Version ==="
node --version
npm --version
echo "=== NPM Configuration ==="
cat $HOME/.npmrc
- name: Install OpenHarmony Dependencies
run: ohpm install --all
- name: Initialize and Build
run: |
hvigorw --version --accept-license
hvigorw clean --no-parallel --no-daemon
hvigorw assembleHap --mode module -p product=default --stacktrace --no-parallel --no-daemon
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: HAP packages
path: ./entry/build/default/outputs/default