Commit graph

120 commits

Author SHA1 Message Date
Eberhard Beilharz
7102bed1e5
maint(linux): remove EOL Ubuntu 25.04 Plucky
Support for Ubuntu 25.04 Plucky ends on 15th January 2026 after which
it is no longer possible to upload and build on Launchpad. This change
removes Plucky.

Fixes: #14955
Test-bot: skip
2026-01-13 18:04:57 +01:00
Eberhard Beilharz
6fe3e3e8ba
maint(linux): free disk space before running autopkgtests
Running the autopkgtests during a Ubuntu packaging build GHA recently
started to fail with an out-of-disk-space error. This change removes
some large directories with tools that we don't need for the autopkgtests.

Fixes: #15171
Build-bot: skip
Test-bot: skip
2025-11-14 18:23:49 +01:00
Marc Durdin
8f95d84014
Merge pull request #15114 from keymanapp/maint/resources/builder-timing
maint(resources): add build timing report to builder
2025-11-14 14:24:11 +01:00
Eberhard Beilharz
72da1be22a
chore(linux): use devel for next Ubuntu release
This change moves to use
[`devel`[1]](https://hub.docker.com/_/ubuntu#whats-in-this-image)
instead of a specific release name for the next Ubuntu release. That way
it will always be able to find an image and will automatically start
using the next one as soon as it becomes available.

Build-bot: skip
Test-bot: skip
2025-11-13 16:43:54 +01:00
Eberhard Beilharz
e56619911d
chore(linux): add support for Ubuntu 26.04 LTS Resolute
Build-bot: skip
Test-bot: skip
2025-11-11 11:28:20 +01:00
Marc Durdin
c573709ee6 maint(resources): add build timing report to builder
This is enabled automatically for CI builds, and can be enabled with
`--timing` parameter otherwise. Also, adds `builder_launch`,
documentation to come.

Test-bot: skip
2025-11-10 11:03:45 +01:00
Eberhard Beilharz
43bcd92602
maint(linux): enable autopkgtests during package build
This enables running `autopkgtests` during a package build.

Fixes: #13777
Test-bot: skip
2025-09-12 18:35:43 +02:00
Eberhard Beilharz
37854e6302
maint(linux): allow to force package build on non-Keyman repo
By default we skip package builds if run on a non-Keyman repo. This
makes it harder to test changes, so this PR allows to pass the parameter
`force: true` when triggering the build.
2025-09-12 18:27:37 +02:00
Eberhard Beilharz
612cd01743
maint(linux): allow to skip API check
This change adds an option to skip the API checks during a build.
This can be done by adding the trailer `Keyman-Api-Check: skip`
to the PR description.

Fixes: #10454
Test-bot: skip
Keyman-Api-Check: skip
2025-09-05 19:04:23 +02:00
Marc Durdin
d09ceccc67 maint(linux): import only one of builder-basic and build-utils in deb-packaging
Fixes: #14512
Test-bot: skip
Build-bot: build
2025-08-13 05:06:39 +02:00
Marc Durdin
70fe13b7d0 maint(linux): source build-utils.sh for down-version support in deb-packaging.yml
deb-packaging.yml runs from master, so we need to continue to source
build-utils.sh until v19 release, so that we can build v18 branches.

Note that deb-packaging.yml will not successfully build on the #14449
branch until this change is merged to master.

Fixes: #14065
2025-08-02 10:00:15 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Eberhard Beilharz
6b61ea49a7
maint(linux): on GHA packaging remove Oracular, add Questing
Remove EOL Ubuntu 24.10 Oracular, add Ubuntu 25.10 Questing.

Test-bot: skip
2025-07-09 11:04:06 +02:00
Eberhard Beilharz
7ab1f8d4f8
maint(linux): update GHA dependencies for Linux package builds 2025-05-16 17:29:37 +02:00
Eberhard Beilharz
72af6ffe9a
maint(linux): don't include dockerbuild log files
The recent update of one of the `docker/build-push-action` dependency
referenced in the `gha-ubuntu-packaging` dependency now adds the
`.dockerbuild` log files as artifacts which confuses the
`prepare_api_verification` step. This change now limits the artifacts
we pass to the API verification to the keyman package related ones.

Test-bot: skip
2025-05-16 17:27:57 +02:00
Eberhard Beilharz
374502479b
maint(linux): properly fallback to VERSION in deb-packaging
This change fixes the fix that #13891 implemented. However that only
used the string `VERSION` instead of the variable... Fixes the package
builds of `stable-18.0` branch.

Fixes: #13891
Test-bot: skip
2025-05-16 16:08:59 +02:00
Eberhard Beilharz
7ede450816
fix(linux): fallback to VERSION if KEYMAN_VERSION isn't set
This allows to build packages for Keyman 18 without having to backport
the change that renames `VERSION` → `KEYMAN_VERSION`.
2025-05-12 18:01:09 +02:00
Eberhard Beilharz
4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02:00
Eberhard Beilharz
2134d8a466
change(linux): add link to issue 2025-04-28 16:42:46 +02:00
Eberhard Beilharz
1b24e57c7d
chore(linux): add comment explaining filename
Addresses code review comment.
2025-03-19 16:10:06 +01:00
Eberhard Beilharz
2b6cf97af8
chore(linux): rename "Debian packaging" to "Ubuntu packaging"
So far the GHA was called "Ubuntu packaging" but the status reported as
"Debian packaging" which was confusing. This change now uses "Ubuntu
packaging" in both places.

We still keep the filename `deb-packaging.yml` because we're packaging
the .deb format, and because it's shorter.

Fixes: #13497
2025-03-17 17:52:18 +01:00
Eberhard Beilharz
b76bfc9b8a
fix(linux): add missing dependency for uploading to llso 2025-02-19 09:03:48 +01:00
Eberhard Beilharz
07d46b691b
Merge pull request #13202 from keymanapp/chore/linux/remove-focal
chore(linux): remove support of Ubuntu 20.04 Focal
2025-02-12 17:45:18 +01:00
Eberhard Beilharz
de79efb8fb
chore(linux): update actions/cache to non-deprecated version
Our previous version of actions/cache will stop working at the end of
February. This change updates to the latest version.

https://github.com/actions/cache/discussions/1510
2025-02-11 19:56:19 +01:00
Eberhard Beilharz
af3756dd92
chore(linux): remove support of Ubuntu 20.04 Focal
Ubuntu 20.04 Focal will reach EOL in April and GitHub removes the
runner images, so we no longer will be able to build packages for Focal.
2025-02-11 19:24:22 +01:00
Eberhard Beilharz
34e314fdc9
chore(linux): add support for Ubuntu 25.04 Plucky Puffin
This change adds support for Plucky when building for llso/pso.
#12614 already added support when building on Launchpad.
2024-11-14 19:31:53 +01:00
Eberhard Beilharz
484f596239
chore(linux): remove Ubuntu Mantic, add Oracular
Ubuntu 23.10 Mantic is EOL, Ubuntu 24.10 Oracular will be the next
release.
2024-07-24 09:49:57 +02:00
Marc Durdin
1c5d0c58e6 chore(linux): run deb-package sourcepackage job on Ubuntu 24.04
Ubuntu 22.04 has meson 0.61; 24.04 has meson 1.3, so updated the
sourcepackage step in deb-packaging to 24.04 to meet min reqs.
2024-05-27 15:10:08 +07:00
Eberhard Beilharz
6b2437e8a3
fix(linux): Properly use and pass run_id
The previous attempt where we set a environment variable for the
artifacts key resulted in a chicken/egg problem: we needed the environment
variable to be able to restore the cached artifacts, but we needed
the cached artifacts in order to be able to read the variables...

This change now properly uses run_id: in `deb-packaging.yml` we can
directly use `run_id` from the context. In `api-verification.yml` we get
it from the payload context.

Cf https://docs.github.com/en/webhooks/webhook-events-and-payloads#workflow_run
2024-05-24 16:14:52 +02:00
Eberhard Beilharz
f95ee27288
fix(linux): Pass artifacts key to API verification GHA 2024-05-23 16:21:55 +02:00
Eberhard Beilharz
81957750aa
Merge pull request #10637 from keymanapp/chore/linux/10626_apichecks
chore(linux): Move API verification to separate action
2024-05-21 19:03:36 +02:00
Eberhard Beilharz
696a70d58d
chore(linux): Adjust distros for GHA 2024-05-02 12:07:05 +02:00
Eberhard Beilharz
414a120bb2
chore(linux): Move API verification to separate action
The new `api-verification` workflow runs after `deb-packaging`.

Implements #10626.
2024-04-23 15:10:36 +02:00
Eberhard Beilharz
4dad3e2ba7
chore(linux): Fix wrong merge
The recent merge from `beta` into `master` introduced a problem when
resolving merge conflicts, resulting in duplicate definition of
`binary_packages_unreleased` which prevents the workflow from loading.
This change rectifies the file.
2024-04-15 11:03:26 +02:00
Darcy Wong
d6ee7f510c Merge remote-tracking branch 'origin/master' into chore/merge-beta-to-master-b17s5 2024-04-12 09:29:23 +07:00
Eberhard Beilharz
2d283d4d13
chore(linux): Show failed job for next Ubuntu version as failed
This change shows failed package builds for the next Ubuntu version
as failed. With the last change it still showed as green in the overview,
despite my experiments. Turns out it depends where you put the
`continue-on-error: true` statement: if it's in the `steps` section
it'll show up green, if you put it in the job's metadata it'll work as
expected and show up as failed.
2024-04-04 16:30:50 +02:00
Eberhard Beilharz
0d7d240584
chore(linux): Sign packages even if build for next Ubuntu fails
We want to run the `deb_signing` job after building binary packages for
both released and unreleased Ubuntu versions finished, so we have to
specify those in the `needs` field. But that on its own causes the
signing job to be skipped if the binary package build for the next
Ubuntu version fails. This change adds conditions so that the
`deb_signing` job always runs if source package build and the binary
package build for the released Ubuntu versions succeeds.
2024-04-04 09:56:47 +02:00
Eberhard Beilharz
774ba9be7c
chore(linux): Revert "Ignore failed package builds for next Ubuntu differently"
This reverts commit 2fe4da7cca.

In my tests in a test repo `continue-on-error` worked as desired but also
seeds the total result as succeeded if the other jobs succeed. It's
possible that we got the behavior we saw because of syntax errors
in our file, so this change tries with the original approach again.
2024-04-03 16:13:45 +02:00
Eberhard Beilharz
2fe4da7cca
chore(linux): Ignore failed package builds for next Ubuntu differently
Previously failed package builds for the next Ubuntu release showed up
with a green check mark. This change allows them to fail, but ignores
them for the following steps.
2024-04-03 11:21:05 +02:00
Eberhard Beilharz
104680b2bd
chore(linux): Update checkout action to v4.1.1 2024-04-03 11:21:04 +02:00
Eberhard Beilharz
239f14597b
chore(linux): Checkout source before building binary packages
Since we use an action that is defined in our source tree we have to
checkout the source before we can build the binary packages.
2024-04-03 11:21:04 +02:00
Eberhard Beilharz
4ac96654ed
chore(linux): Fix typo 2024-04-03 09:06:07 +02:00
Eberhard Beilharz
e07e5ff64a
chore(linux): Fix typo 2024-04-03 09:05:35 +02:00
Eberhard Beilharz
aae25884b5
chore(linux): Build packages for next Ubuntu version separately
This change splits the package builds into building packages for the
released Ubuntu versions and for the next version. A failure to build
packages for the next version will no longer fail the packaging GHA.

Closes #11143.

(cherry picked from commit 043f2c65f5)
2024-04-03 08:55:50 +02:00
Eberhard Beilharz
043f2c65f5
chore(linux): Build packages for next Ubuntu version separately
This change splits the package builds into building packages for the
released Ubuntu versions and for the next version. A failure to build
packages for the next version will no longer fail the packaging GHA.

Closes #11143.
2024-04-02 17:42:41 +02:00
Eberhard Beilharz
59d287a9df
chore(linux): Temporarily disable autopkgtests gha 2024-02-26 19:17:14 +01:00
Eberhard Beilharz
3b37a604dc
fix(linux): Fix autopkgtest gha
- installing missing dependencies
- consider autopkgtest result in final status
2024-02-26 16:27:36 +01:00
Eberhard Beilharz
bc6d8d5515
Merge pull request #10823 from keymanapp/chore/linux/gha-autopkgtest
chore(linux): Add running autopkgtests on GHA
2024-02-26 10:59:16 +01:00
Eberhard Beilharz
501377a5c3
fix(linux): Dynamically get package name
Fixes API verification step in packaging gha.
2024-02-23 15:16:09 +01:00
Eberhard Beilharz
e8e0c1d31f
chore(linux): Add running autopkgtests on GHA 2024-02-23 11:45:26 +01:00