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