You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
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>
2 years ago
.github Fix adding -arm tag correctly to PINNED_MAILU_VERSION in arm.yml. 2 years ago
core Merge #2403 2 years ago
design Switch from RainLoop to SnappyMail 3 years ago
docs Merge #2403 2 years ago
optional Merge branch 'master' of github.com:Mailu/Mailu into feature-switch-snappymail 2 years ago
setup Remove the misleading text in mailu.env that zstd and lz4 are supported for dovecot mail compression. 2 years ago
tests Forgot to update snappymail test 2 years ago
towncrier Merge #2403 2 years ago
webmails Merge #2403 2 years ago
.gitignore use different alpine image for arm, add config for php images+arm 5 years ago
.mergify.yml Preparations for 1.9 release. 3 years ago
AUTHORS.md Update AUTHORS.md 3 years ago
CHANGELOG.md Warn about rollbacks not working 2 years ago
CODE_OF_CONDUCT.md Add a code of conduct, fixes #319 7 years ago
CONTRIBUTING.md Update "the development guidelines" hyperlink 5 years ago
ISSUE_TEMPLATE.md Remove <> tags as they break markdown rendering 4 years ago
LICENSE.md Rename the freeposte/mailu directory and database 8 years ago
PULL_REQUEST_TEMPLATE.md fix spelling 3 years ago
README.md document 3 years ago
RELEASE_TEMPLATE.md changed semver example to 1.9.x 3 years ago
bors.toml Switch to github actions for CI/CD 3 years ago
pyproject.toml Fix the package setting 5 years ago

README.md

Mailu

Mailu is a simple yet full-featured mail server as a set of Docker images. It is free software (both as in free beer and as in free speech), open to suggestions and external contributions. The project aims at providing people with an easily setup, easily maintained and full-featured mail server while not shipping proprietary software nor unrelated features often found in popular groupware.

Most of the documentation is available on our Website, you can also try our demo server before setting up your own, and come talk to us on Matrix.

Features

Main features include:

  • Standard email server, IMAP and IMAP+, SMTP and Submission with autoconfiguration profiles for clients
  • Advanced email features, aliases, domain aliases, custom routing
  • Web access, multiple Webmails and administration interface
  • User features, aliases, auto-reply, auto-forward, fetched accounts
  • Admin features, global admins, announcements, per-domain delegation, quotas
  • Security, enforced TLS, DANE, MTA-STS, Letsencrypt!, outgoing DKIM, anti-virus scanner
  • Antispam, auto-learn, greylisting, DMARC and SPF
  • Freedom, all FOSS components, no tracker included

Domains

Contributing

Mailu is free software, open to suggestions and contributions. All components are free software and compatible with the MIT license. All specific configuration files, Dockerfiles and code are placed under the MIT license.