mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-08 22:33:26 +01:00
104 lines
3.1 KiB
YAML
104 lines
3.1 KiB
YAML
name: Reusable SideStore Build
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
is_beta:
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
publish:
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
is_shared_build_num:
|
|
required: false
|
|
default: true
|
|
type: boolean
|
|
release_name:
|
|
required: true
|
|
type: string
|
|
release_tag:
|
|
required: true
|
|
type: string
|
|
upstream_tag:
|
|
required: true
|
|
type: string
|
|
upstream_name:
|
|
required: true
|
|
type: string
|
|
bundle_id:
|
|
default: com.SideStore.SideStore
|
|
required: true
|
|
type: string
|
|
bundle_id_suffix:
|
|
default: ''
|
|
required: false
|
|
type: string
|
|
|
|
secrets:
|
|
# GITHUB_TOKEN:
|
|
# required: true
|
|
CROSS_REPO_PUSH_KEY:
|
|
required: true
|
|
BUILD_LOG_ZIP_PASSWORD:
|
|
required: false
|
|
|
|
|
|
# since build cache, test-build cache, test-run cache are involved, out of order exec if serialization is on individual jobs will wreak all sorts of havoc
|
|
# so we serialize on the entire workflow
|
|
concurrency:
|
|
group: serialize-workflow
|
|
|
|
jobs:
|
|
shared:
|
|
uses: ./.github/workflows/sidestore-shared.yml
|
|
secrets: inherit
|
|
|
|
build:
|
|
needs: shared
|
|
uses: ./.github/workflows/sidestore-build.yml
|
|
with:
|
|
is_beta: ${{ inputs.is_beta }}
|
|
is_shared_build_num: ${{ inputs.is_shared_build_num }}
|
|
release_tag: ${{ inputs.release_tag }}
|
|
short_commit: ${{ needs.shared.outputs.short-commit }}
|
|
bundle_id: ${{ inputs.bundle_id }}
|
|
bundle_id_suffix: ${{ inputs.bundle_id_suffix }}
|
|
secrets: inherit
|
|
|
|
tests-build:
|
|
if: ${{ vars.ENABLE_TESTS == '1' && vars.ENABLE_TESTS_BUILD == '1' }}
|
|
needs: shared
|
|
uses: ./.github/workflows/sidestore-tests-build.yml
|
|
with:
|
|
release_tag: ${{ inputs.release_tag }}
|
|
short_commit: ${{ needs.shared.outputs.short-commit }}
|
|
secrets: inherit
|
|
|
|
tests-run:
|
|
if: ${{ vars.ENABLE_TESTS == '1' && vars.ENABLE_TESTS_RUN == '1' }}
|
|
needs: [shared, tests-build]
|
|
uses: ./.github/workflows/sidestore-tests-run.yml
|
|
with:
|
|
release_tag: ${{ inputs.release_tag }}
|
|
short_commit: ${{ needs.shared.outputs.short-commit }}
|
|
secrets: inherit
|
|
|
|
deploy:
|
|
needs: [shared, build, tests-build, tests-run] # Keep tests-run in needs
|
|
if: ${{ always() && (needs.tests-run.result == 'skipped' || needs.tests-run.result == 'success') }}
|
|
uses: ./.github/workflows/sidestore-deploy.yml
|
|
with:
|
|
is_beta: ${{ inputs.is_beta }}
|
|
publish: ${{ inputs.publish }}
|
|
release_name: ${{ inputs.release_name }}
|
|
release_tag: ${{ inputs.release_tag }}
|
|
upstream_tag: ${{ inputs.upstream_tag }}
|
|
upstream_name: ${{ inputs.upstream_name }}
|
|
version: ${{ needs.build.outputs.version }}
|
|
short_commit: ${{ needs.shared.outputs.short-commit }}
|
|
release_channel: ${{ needs.build.outputs.release-channel }}
|
|
marketing_version: ${{ needs.build.outputs.marketing-version }}
|
|
bundle_id: ${{ inputs.bundle_id }}
|
|
secrets: inherit |