Skip to content

Fix and harden Launchpad publishing workflow #104

@rtibbles

Description

@rtibbles

Overview

The build_debian.yml workflow and its associated Python scripts have multiple issues preventing reliable automated publishing to Launchpad PPAs. There are YAML syntax errors that block execution entirely, race conditions from missing build polling, duplicated logic across copy scripts, and no way to test the workflow without actually publishing. This tracking issue covers all fixes needed to make the workflow functional and maintainable.

Scope

Included:

  • Fix YAML syntax errors in build_debian.yml
  • Add Launchpad build polling before copy operations
  • Consolidate copy_to_other_distributions.py and copy_package_proposed_to_ppa.py
  • Add --dry-run support to scripts and workflow_dispatch trigger to the workflow
  • Minor bug fixes (invalid env var name, opts.verbose TypeError, credentials cleanup)

Excluded:

  • Changes to the Makefile or sign-and-upload target
  • Changes to GPG signing
  • Migrating away from launchpadlib
  • Unit test coverage for scripts (worth a separate follow-up)

Strategy

Ship in order, since each task builds on the previous:

  1. YAML fixes — unblocks everything, zero functional risk, quick PR
  2. Consolidate copy scripts — reduces surface area before adding new features to it
  3. Add build polling — depends on consolidated script for clean integration
  4. Add dry-run support — final layer, depends on all prior work for end-to-end testing

🤖 This issue was written with AI assistance, under supervision, review and final edits by [@rtibbles] 🤖

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions