Official Actions Reuse
This page shows the recommended way for third-party store maintainers to reuse the official build and release flow.
Recommended reuse path
For external repositories, prefer these layers:
- Use the upstream public build action
IceWhaleTech/build-appstore-action. - Keep your own repository workflow responsible for validation, artifact upload, and publishing.
- Treat helper actions under this repository's
.github/actions/as examples or repo-local wrappers unless you intentionally vendor them.
What each action is for
IceWhaleTech/build-appstore-action: public v2 build engine. Use this to generatedist/in your own repository workflow..github/actions/build-store-v2: repo-local wrapper around the public build action..github/actions/build-store-v1: packages the legacydist/store/main.zipartifact for old clients..github/actions/validate-compose: checks app compose metadata before building..github/actions/write-job-summary: writes structured JSON reports into the GitHub Actions job summary..github/actions/render-report: converts JSON reports into standalone HTML artifacts.
Recommended workflow split
The official repository separates concerns this way:
validator.yml: validate compose input and confirm the v2 build succeeds.release.yml: build v2dist/, build v1main.zip, upload artifacts, and save caches.release-store.yml: publish tagged releases, deploydist/togh-pages, and create a GitHub Release bundle.
For most third-party stores, use the same split:
- one validation workflow for PRs
- one build workflow for reusable artifacts
- one publish workflow for tags or releases
Minimal validation workflow
yaml
name: Validate Store
on:
pull_request:
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build v2 dist
uses: IceWhaleTech/build-appstore-action@v1
with:
source: .
output: dist
base-url: https://cdn.jsdelivr.net/gh/${{ github.repository }}@gh-pages
cache-file: .cache/build_appstore/image-size-cache.json
digest-cache-file: .cache/build_appstore/image-digest-cache.jsonMinimal publish workflow
yaml
name: Release Store
on:
push:
tags:
- "v*"
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build v2 dist
uses: IceWhaleTech/build-appstore-action@v1
with:
source: .
output: dist
base-url: https://cdn.jsdelivr.net/gh/${{ github.repository }}@gh-pages
cache-file: .cache/build_appstore/image-size-cache.json
digest-cache-file: .cache/build_appstore/image-digest-cache.json
- name: Deploy dist
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./distCompatibility note
If you still support legacy v1 clients, add a step that also produces dist/store/main.zip. The official repository does this through .github/actions/build-store-v1 after the v2 build succeeds.
Local builds
Use ./scripts/build_dist.sh when you want local development to match the upstream build action closely. Use GitHub Actions directly for real third-party store CI.