1
0
mirror of https://github.com/Mailu/Mailu.git synced 2024-12-14 10:53:30 +02:00
Mailu/docs
bors[bot] 53de7b7d60
Merge #2403
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: #001
- closes #2383 
- closes #1830
- closes #1200

## 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>
2022-08-19 13:19:13 +00:00
..
_templates Restore VERSION_TAG template 2018-12-30 15:07:45 +02:00
assets removing unneeded image 2020-11-17 11:41:01 -06:00
compose Merge #2391 2022-07-29 13:17:24 +00:00
contributors Merge branch 'master' into feat-switch-buildx 2022-08-03 09:45:20 +00:00
kubernetes/mailu simplify 2021-08-24 18:49:27 +02:00
swarm Implement rate-limits 2021-09-23 18:40:49 +02:00
.env Add deploy settings for server 2018-12-17 00:12:21 +02:00
antispam.rst Documentation: 2022-07-26 18:16:18 +08:00
arm_images.rst Switch from docker build to buildx for CI/CD. 2022-08-03 09:36:53 +00:00
cli.rst Fix small typo in config-import example template 2022-08-05 07:17:45 +00:00
conf.py Set language to English for sphinx in conf.py. 2022-06-07 11:20:07 +00:00
configuration.rst Documentation: 2022-07-26 18:16:18 +08:00
database.rst Update database.rst 2022-07-28 19:44:31 +08:00
demo.rst Fixed small typo 2020-01-11 10:13:53 +01:00
dns.rst Change URL dashboard in DKIM/SPF & DMARC Entries 2022-02-01 11:04:50 +01:00
docker-compose.yml Make docker-compose.yml for setup and docs development friendly 2019-01-16 20:50:52 +02:00
Dockerfile Process code review remarks 2021-11-18 17:21:56 +00:00
faq.rst Merge #2391 2022-07-29 13:17:24 +00:00
features.rst remove service status "feature" 2020-11-11 12:10:41 -06:00
general.rst Update general.rst 2022-07-28 20:02:51 +08:00
index.rst Switch from docker build to buildx for CI/CD. 2022-08-03 09:36:53 +00:00
maintain.rst Documentation: 2022-07-26 18:16:18 +08:00
nginx.conf Build the documentation as a Docker image 2018-09-28 10:41:17 +02:00
releases.rst Warn about rollbacks not working 2022-05-07 17:28:18 +02:00
requirements.txt Added missing extension in conf.py. Added missing library in requirements.txt. Sphinx is only compatible with docutils<0.17 2021-07-21 12:18:14 +02:00
reverse.rst Fixed error in reverse.rst and remove unneeded example block. 2022-08-05 15:42:37 +00:00
setup.rst Merge branch 'master' into feat-switch-buildx 2022-08-03 09:45:20 +00:00
webadministration.rst Documentation: 2022-07-26 18:16:18 +08:00