mailu/towncrier/newsfragments
bors[bot] 53de7b7d60
Merge
2403: Feature: switch CI/CD from build to buildx r=mergify[bot] a=Diman0

## What type of PR?

Feature and enhancement

## What does this PR do?

Switch from docker build to buildx for CI/CD.
    - The main workflow file has been optimised and simplified.
    - Images are built in parallel when building locally resulting in much faster build times.
    - The github action workflow is about 50% faster.
    - Arm images are built as well. These images are not tested due to restrictions of github actions (no arm runners). The tags of the images have -arm appended to it. The arm images are built on merge on master and release branch (x.y). They do not influence the normal CI/CD workflow used for bors (for PR) and real releases (merge on master and branch x.y for x86_64). 
    - Arm images (and normal x86_64 images) can also be built locally.
    - Reusable workflow is introduced for building, testing and deploying the images. This allows the workflow to be reused for other purposes in the future.
    - Workflow can be manually triggered. This allows forked Mailu projects to also use the workflow for building images.

The main workflow makes use of github actions cache to store the cache layer. This layer is used to quickly rebuilt the images in the testing step and deploy step.

Unfortunately the building the arm images fails sometimes due to timeouts. Sometimes the connection to github actions cache is very slow. Restarting the workflow from the last failed step resolves this. I have not observed this with the normal build.

Just as previous time, you can use a forked project for testing the changes (https://github.com/Diman0/Mailu_Fork). You should still have owner access. I have created branch 1.11 for testing. You can see I already push 4 times to branch 1.11 (current version is 1.11.3).

### Related issue(s)
- Mention an issue like: 
- closes  
- closes 
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Dimitri Huisman <diman@huisman.xyz>
..
224.feature Ask users to check their DNS records
2099.bugfix Create 2099.bugfix
2117.bugfix Fix . Gpg-agent package was missing for roundcube image.
2121.misc Add newsfragment for PR .
2124.bugfix Tag for release is correctly tagged to branch x.y.
2125.bugfix towncrier
2135.bugfix towncrier
2138.bugfix Fix 2138: Pin DANE with the full cert
2139.bugfix Add newsfragment for bugfix for issue 2139
2141.bugfix Create 2141.bugfix
2185.doc Create 2185.doc
2193.bugfix Create 2193.bugfix
2195.bugfix Create 2195.bugfix
2196.bugfix Create 2196.bugfix
2199.bugfix Update 2199.bugfix
2207.bugfix Add bugfix description
2210.bugfix Create 2210.bugfix
2211.misc Ensure we use IMAP IDLE like it's supposed to work
2213.feature typo
2214.doc Update fail2ban faq doc
2221.feature Add 2221.feature
2239.bugfix towncrier
2249.bugfix Fix broken setup. Not all dependencies were pinned. As usual a dependency had a breaking update.
2260.bugfix towncrier
2278.feature Changelog
2281.bugfix Create 2281.bugfix
2284.bugfix Create 2284.bugfix
2295.feature Add changelog
2302.bugfix create PR2302 changelog
2325.bugfix postfix: wrap IPv6 CIDRs in square brackets for RELAYNETS
2338.misc towncrier fragment 2338 about X-XSS-Protection removal
2346.bugfix Silence some errors in nginx
2357.misc Switch to ffdhe3072 to enable RFC 7919
2368.bugfix Re-enable the built-in nginx resolver for traffic going through the mail plugin.
2383.misc Switch from docker build to buildx for CI/CD.
2402.bugfix Forwarding emails option in user settings did not support 1 letter domains.
2415.bugfix Create 2415.bugfix