ohos_electron_hap/.github/workflows/harmonyos-ci.yml

107 lines
3.5 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: HarmonyOS CI/CD Pipeline
on:
push:
branches:
- master
- main
- feature/*
- release/*
tags:
- '*'
pull_request:
branches:
- master
- main
- feature/*
- release/*
jobs:
build:
runs-on: ubuntu-latest
container: ghcr.io/sanchuanhehe/harmony-next-pipeline-docker/harmonyos-ci-image:v5.0.4
steps:
# 1. 拉取代码
- name: Checkout code
uses: actions/checkout@v3
# 2. 安装项目依赖
- name: Install dependencies
run: |
cd $GITHUB_WORKSPACE
ohpm install --all
# 3. 构建 HAP 文件
- name: Build HAP
run: |
cd $GITHUB_WORKSPACE
hvigorw clean --no-daemon
hvigorw assembleHap --mode module -p product=default -p buildMode=debug --no-daemon
# 4. 获取构建输出路径
- name: Get build output path
id: get_build_output_path
run: |
cd $GITHUB_WORKSPACE
echo "output_path=$(ls -d $PWD/electron/build/default/outputs/default)" >> $GITHUB_OUTPUT
# 5. 上传构建输出作为 artifact
- name: Upload Build Output
uses: actions/upload-artifact@v4
with:
name: build-output
path: ${{ steps.get_build_output_path.outputs.output_path }}
publish:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
container: ghcr.io/sanchuanhehe/harmony-next-pipeline-docker/harmonyos-ci-image:latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
# 1. 拉取代码
- name: Checkout code
uses: actions/checkout@v3
# 2. 下载构建输出 artifact
- name: Download Build Output
uses: actions/download-artifact@v4
with:
name: build-output
path: $GITHUB_WORKSPACE/electron/build/default/outputs/default
# 3. 签名 HAP 文件如果存在签名文件和证书文件还有密钥文件和KEY_PASSWORD和KEYSTORE_PASSWORD
- name: Sign HAP
id: sign_hap
if: env.SIGNING_CERT && env.SIGNING_PROFILE && env.SIGNING_KEY
run: |
cd $GITHUB_WORKSPACE
java -jar /harmonyos-tools/command-line-tools/sdk/default/openharmony/toolchains/lib/hap-sign-tool.jar \
sign-app \
-keyAlias "ide_demo_app" \
-signAlg "SHA256withECDSA" \
-mode "localSign" \
-appCertFile "${{ env.SIGNING_CERT }}" \
-profileFile "${{ env.SIGNING_PROFILE }}" \
-inFile "./electron/build/default/outputs/default/electron-default.hap" \
-keystoreFile "${{ env.SIGNING_KEY }}" \
-outFile "./electron/build/default/outputs/default/electron-default-signed.hap" \
-keyPwd "${{ secrets.KEY_PASSWORD }}" \
-keystorePwd "${{ secrets.KEYSTORE_PASSWORD }}" \
-signCode "1"
# 4. 创建 GitHub Release 并上传资产
- name: Create Release and Upload Assets
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/v')
with:
name: ${{ github.ref_name }}
files: |
${{ steps.sign_hap.outcome == 'success' && '$GITHUB_WORKSPACE/electron/build/default/outputs/default/electron-default-signed.hap' || '$GITHUB_WORKSPACE/electron/build/default/outputs/default/electron-default-unsigned.hap' }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ github.token }}