Skip to main content

Remote Publishing to Custom Repo Update Streams

Streamline the distribution of your Joomla components by automatically publishing builds to a remote Git repository or update server.

What Is Remote Publishing?

Remote publishing in Joomla Component Builder (JCB) allows you to push compiled builds (ZIP packages, update XML, changelogs, and more) to an external repository or server of your choice, including:

  • Git repositories (e.g., Gitea, GitHub, GitLab)
  • Update servers hosted via a web domain
  • Custom API endpoints for CI/CD pipelines

These update streams can then be consumed by:

  • Joomlaโ€™s built-in Extension Update system
  • External installers or provisioning tools
  • Team collaborators managing package versions

Key Capabilities

  • ๐Ÿงพโ€‚Auto-Push Build Artifacts
    Compiled .zip files, changelogs, and XML update manifests are automatically pushed to a defined remote path or repository branch.
  • ๐Ÿ› โ€‚Git-Aware
    Pushed based on build versions and tagsโ€”supporting per-branch deployment (e.g., 3.x-dev, 4.x-stable, etc.).
  • ๐Ÿ”„โ€‚Tag-Based Versioning
    JCB can auto-generate semantic version tags based on blueprint metadata and commit history.
  • ๐Ÿ–‡โ€‚Component Update XML Generator
    Dynamically builds Joomla-compatible update server XML per componentโ€”based on release files in the remote repo.
  • ๐Ÿ”โ€‚Secure Push via API Tokens
    Remote publishing supports authenticated endpoints using API keys or tokens, ensuring secure access to your Git or HTTP server.
  • ๐Ÿ—ƒ๏ธโ€‚Multi-Stream Publishing
    Publish to multiple destinations based on component, build status (nightly/stable), or target Joomla version.

Typical Use Cases

  • Publish nightly or stable builds to GitHub or Gitea
  • Push to a private update server for licensed client installations
  • Automate delivery to a release management system
  • Manage internal builds between developer teams

How to Configure in JCB

  • Open the desired Component.
  • Enable Component updates.
  • Define:
    • Target Git URL or server endpoint
    • Authentication token or credentials
    • Branch or folder path
    • File types to push (zip, XML, changelog, etc.)
  • Set the triggering behavior:
    • Manual trigger
    • On successful build
    • On tag push
  • Optional: Add a version-based filter (e.g., skip nightly).
  • JCB takes care of packaging, versioning, and pushing the correct artifacts to the remote destination after compilation.

Update Stream Integration

JCB can auto-generate the required update server XML file that Joomla uses to check for extension updates.

This means your users can:

  • Install your component once
  • Receive updates directly via Joomlaโ€™s Extension Manager
  • Automatically receive changelogs and version history

This allows you to offer stable, semi-automated delivery of new releases to production sites, beta testers, or internal clients.

Benefits

  • โœ…โ€‚Automates repetitive release steps
  • โœ…โ€‚Great for versioned component distribution
  • โœ…โ€‚Keeps Git and Joomla update servers in sync
  • โœ…โ€‚Helps power nightly/stable build workflows
  • โœ…โ€‚Minimizes manual packaging errors
  • โœ…โ€‚Great for licensed or enterprise scenarios

Bonus: Link with Build ID System

Combine remote publishing with JCBโ€™s build ID assignment system for traceable builds, rollback-friendly releases, and metadata-rich component delivery.

Learn More