You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#. Run ``ppa-copy-packages.py`` script to copy the builds for Xenial to all other currently active and supported Ubuntu releases on Launchpad. The script is run from command line with ``python2 ppa-copy-packages.py``. After this, you should be prompted to create an API key for your Launchpad account.
62
-
#. When a release in ``kolibri-proposed`` should be released as a stable release, use the binary copy function on Launchpad to copy builds from ``kolibri-proposed``.
61
+
#. Validates the release tag version against ``debian/changelog``
62
+
#. Builds, signs, and uploads the source package to the ``kolibri-proposed`` PPA via ``dput``
63
+
#. Waits for Launchpad to build the source package
64
+
#. Copies the built package to all supported Ubuntu series
65
+
#. Waits for all copy builds to complete
66
+
#. (Non-prerelease only) Requires manual approval via the ``release`` environment
67
+
#. Promotes packages from ``kolibri-proposed`` to ``kolibri`` PPA
68
+
69
+
Launchpad credentials setup
70
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71
+
72
+
The workflow requires Launchpad API credentials stored as a GitHub Actions secret.
#. Approve the authorization request in your browser. This writes a credentials file (default: ``launchpad.credentials``).
82
+
#. Copy the full content of the credentials file.
83
+
#. In GitHub, go to the repository **Settings > Secrets and variables > Actions > New repository secret**.
84
+
#. Create a secret named ``LP_CREDENTIALS`` and paste the credentials file content.
85
+
86
+
The workflow writes this secret to a temporary file at runtime and cleans it up after each job.
87
+
88
+
Manual workflow dispatch
89
+
~~~~~~~~~~~~~~~~~~~~~~~~
90
+
91
+
The workflow supports a ``workflow_dispatch`` trigger for manual reruns. This is useful when a release workflow fails partway through — you can fix the issue and rerun the workflow without it breaking because earlier steps already succeeded.
92
+
93
+
To trigger from the GitHub UI:
94
+
95
+
#. Go to **Actions > Build Debian source package > Run workflow**
96
+
#. Click **Run workflow**
97
+
98
+
To trigger from the command line::
99
+
100
+
gh workflow run build_debian.yml
101
+
102
+
When triggered via ``workflow_dispatch``:
103
+
104
+
- The ``build_package`` and ``wait_for_source_builds`` jobs are skipped (no release artifact to upload)
105
+
- The version is read from ``debian/changelog`` instead of the release tag
106
+
- The ``block_release_step`` manual approval gate is skipped
107
+
- All copy and promote steps run normally — they are idempotent and safely handle packages that were already copied in a previous run
108
+
109
+
Launchpad copy script
110
+
~~~~~~~~~~~~~~~~~~~~~
111
+
112
+
The ``scripts/launchpad_copy.py`` script manages Launchpad PPA operations with three subcommands:
113
+
114
+
``copy-to-series``
115
+
Copies packages from the source Ubuntu series to all other supported series within the ``kolibri-proposed`` PPA::
116
+
117
+
python3 scripts/launchpad_copy.py copy-to-series
118
+
119
+
``promote``
120
+
Promotes all published packages from ``kolibri-proposed`` to the ``kolibri`` PPA::
121
+
122
+
python3 scripts/launchpad_copy.py promote
123
+
124
+
``wait-for-builds``
125
+
Polls Launchpad until all builds for a source package reach a terminal state::
0 commit comments