Skip to content

Commit

Permalink
Add Build Verification CI Workflow
Browse files Browse the repository at this point in the history
This PR adds a `Verify Build` GitHub Actions workflow to automate
building and verifying the application on the `main` branch. The
workflow includes:

- Checking out the repository.
- Setting up signing certificates from GitHub Secrets.
- Installing OpenHarmony tools and dependencies.
- Building the application with `hvigorw`.
- Uploading generated HAP packages as artifacts.

This ensures a reliable and consistent build process for continuous
integration.

Signed-off-by: Francesco Pham <[email protected]>
  • Loading branch information
Francesco Pham committed Dec 11, 2024
1 parent fb4000b commit 39b0564
Showing 1 changed file with 88 additions and 0 deletions.
88 changes: 88 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
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

0 comments on commit 39b0564

Please sign in to comment.