I have published two public GitHub repositories that make it easy to build and publish Objo Studio applications using GitHub Actions.
Repositories
ObjoPublisher
https://github.com/madamov/ObjoPublisher
This repository contains reusable GitHub Actions workflows for publishing Objo applications on all supported platforms.
The workflows automatically:
- download or restore the requested Objo Studio version from cache,
- activate and deactivate an Objo Studio license,
- publish applications,
- optionally sign and notarize macOS applications,
- optionally sign Windows MSIX packages,
- collect build artifacts,
- upload build artifacts,
- cache Objo Studio installations for future workflow runs.
Available reusable workflows:
- publish_objo_macos.yml
- publish_objo_linux.yml
- publish_objo_windows.yml
- publish_objo_windows_objosign.yml
ObjoBuilder
https://github.com/madamov/ObjoBuilder
This repository demonstrates how the reusable workflows can be consumed from application repositories.
It contains example workflows for all supported publishing scenarios:
| Workflow | Demonstrates |
| objopublisher_publish_macos.yml | Calling the reusable macOS publishing workflow, publishing one or more macOS targets, uploading the generated DMG files, and downloading the published artifacts in a subsequent job. |
| objopublisher_publish_linux.yml | Calling the reusable Linux publishing workflow, publishing one or more Linux targets, uploading the generated archives, and downloading the published artifacts in a subsequent job. |
| objopublisher_publish_windows.yml | Calling the reusable Windows publishing workflow that signs MSIX packages using the official Azure Trusted Signing GitHub Action, then downloading the signed artifacts in a subsequent job. |
| objopublisher_publish_windows_objosign.yml | Calling the reusable Windows publishing workflow that lets Objo Studio perform Azure Trusted Signing during publishing, then downloading the signed artifacts in a subsequent job. |
| check_syntax.yml | Restoring a cached Objo Studio installation, activating an Objo Studio license, automatically locating the .objosln file, running objo check, and deactivating the license. |
| cache_objo_studio.yml | Downloading and caching the latest released version of Objo Studio for macOS, Linux, and Windows runners. |
Every publishing example consists of two jobs:
- A job that calls one of the reusable workflows in ObjoPublisher.
- A second job that demonstrates how to download the artifacts produced by the reusable workflow using
actions/download-artifact.
This makes the repository a practical reference not only for publishing applications but also for consuming the generated artifacts in later workflow jobs.
Why reusable workflows?
Most projects require exactly the same publishing pipeline:
- install Objo Studio,
- activate a license,
- publish the application,
- optionally sign it,
- collect artifacts,
- upload artifacts,
- deactivate the license.
Without reusable workflows, every repository ends up maintaining nearly identical YAML files. Any improvement or bug fix must then be copied into every project.
By moving the publishing logic into ObjoPublisher, application repositories become much simpler—they only provide project-specific inputs and secrets, while all publishing logic is maintained in one place.
Benefits include:
- centralized maintenance,
- consistent publishing behavior across projects,
- smaller workflow files,
- automatic Objo Studio caching,
- easier updates and bug fixes,
- less duplicated YAML.
Windows publishing workflows
There are two different Windows publishing workflows because Objo Studio supports two different approaches to Azure Trusted Signing.
| Workflow | How signing is performed | Recommended when |
| publish_objo_windows.yml | Objo publishes the MSIX package. The workflow then signs it using the official azure/trusted-signing-action. | You want to use Microsoft's supported GitHub Action and keep signing separate from publishing. |
| publish_objo_windows_objosign.yml | Objo publishes and signs the MSIX itself by invoking Microsoft's Azure Artifact Signing Client Tools. | You prefer Objo Studio to perform the complete publish-and-sign process. |
Both workflows produce signed MSIX packages but use different signing mechanisms.
Current status of the Objo signing workflow
The publish_objo_windows_objosign.yml workflow has not yet been fully tested.
Although the workflow itself is complete, my Azure Trusted Signing account currently does not have sufficient permissions to perform end-to-end testing of the signing process through Objo Studio.
The reusable workflow has been implemented based on the documented behavior of Objo Studio and the Azure Artifact Signing Client Tools, but additional validation by users with full Azure Trusted Signing permissions would be greatly appreciated.