ThreadNet-Web/docs/packaging.md
sorB 3da363517f
Some checks failed
Docker / Docker Buildx (push) Has been cancelled
Build Debian package / Build package (release) Has been cancelled
Build and Deploy / prepare (release) Has been cancelled
Deploy release / Deploy to Cloudflare Pages (release) Has been cancelled
Build and Deploy / Trigger Pro pipeline (release) Has been cancelled
Build and Deploy / Windows arm64 (release) Has been cancelled
Build and Deploy / Windows x64 (release) Has been cancelled
Build and Deploy / macOS (release) Has been cancelled
Build and Deploy / Linux amd64 (sqlcipher static) (release) Has been cancelled
Build and Deploy / Linux arm64 (sqlcipher static) (release) Has been cancelled
Build and Deploy / ${{ needs.prepare.outputs.deploy == 'true' && 'Deploy' || 'Deploy (dry-run)' }} (release) Has been cancelled
Build and Deploy / Deploy builds to ESS (release) Has been cancelled
feat: show call participants in room list (Discord-style)
2026-05-10 14:25:35 +02:00

2.3 KiB

Packaging nightlies

Element Desktop nightly builds are build automatically by the Github Actions workflow. The schedule is currently set for once a day at 9am UTC. It will deploy to packages.element.io upon completion.

Triggering a manual nightly build

Simply go to https://github.com/vector-im/element-web/actions/workflows/build_desktop_and_deploy.yaml

  1. Click Run workflow
  2. Feel free to make changes to the checkboxes depending on the circumstances
  3. Click the green Run workflow

Packaging releases

The packaging is kicked off automagically for you when a Github Release for Element Web is published.

More detail on the github actions

We moved to Github Actions for the following reasons:

  1. Removing single point of failure
  2. Improving reliability
  3. Unblocking the packaging on a single individual
  4. Improving parallelism

The Windows builds are signed by SSL.com using their Cloud Key Adapter for eSigner. This allows us to use Microsoft's signtool to interface with eSigner and send them a hash of the exe along with credentials in exchange for a signed certificate which we attach onto all the relevant files.

The Apple builds are signed using standard code signing means and then notarised to appease GateKeeper.

The Linux builds are distributed via a signed reprepro repository.

The packages.element.io site is a public Cloudflare R2 bucket which is deployed to solely from Github Actions. The main bucket in R2 is packages-element-io which is a direct mapping of packages.element.io, we have a workflow which generates the index.html files there to imitate a public index which Cloudflare does not currently support. The reprepro database lives in packages-element-io-db. There is an additional pair of buckets of same name but appended with -test which can be used for testing, these land on https://packages-element-io-test.element.io/.

Debian/Ubuntu Distributions

We used to add a new distribution to match each Debian and Ubuntu release. As of April 2020, we have created a default distribution that everyone can use (since the packages have never differed by distribution anyway).

The distribution configuration lives in https://github.com/vector-im/packages.element.io/blob/master/debian/conf/distributions as a canonical source.