Skip to content

Commit 41fff73

Browse files
charles2910flatcap
authored andcommitted
Add Debian images for stable and development releases
Only build stable releases once a month and development releases once per week.
1 parent 9953f17 commit 41fff73

6 files changed

Lines changed: 263 additions & 3 deletions

File tree

.github/workflows/debian.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Create Debian Docker images containing all the packages required for a full build of NeoMutt.
2+
name: Debian
3+
on:
4+
push:
5+
paths:
6+
- '.github/workflows/debian.yml'
7+
- 'debian.bookworm/Dockerfile'
8+
- 'debian.trixie/Dockerfile'
9+
- 'debian.forky/Dockerfile'
10+
- 'debian.sid/Dockerfile'
11+
schedule:
12+
- cron: '0 3 1 * *'
13+
# 1st of the month at 03:00 for stable releases
14+
- cron: '0 3 * * 1'
15+
# Every Monday at 03:00 for development releases
16+
workflow_dispatch:
17+
18+
jobs:
19+
build_stable:
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
cfg:
24+
- version: bookworm
25+
- version: trixie
26+
27+
name: Build Debian ${{ matrix.cfg.version }}
28+
runs-on: ubuntu-latest
29+
if: github.event.schedule == '0 3 1 * *'
30+
31+
steps:
32+
- name: Checkout repository
33+
uses: actions/checkout@v4
34+
35+
- name: Build Debian ${{ matrix.cfg.version }}
36+
uses: pmorelli92/github-container-registry-build-push@2.2.1
37+
with:
38+
github-push-secret: ${{secrets.GITHUB_TOKEN}}
39+
docker-image-name: debian
40+
docker-image-tag: ${{ matrix.cfg.version }}
41+
dockerfile-path: ./debian.${{ matrix.cfg.version }}/Dockerfile
42+
43+
build_development:
44+
strategy:
45+
fail-fast: false
46+
matrix:
47+
cfg:
48+
- version: forky
49+
- version: sid
50+
51+
name: Build Debian ${{ matrix.cfg.version }}
52+
runs-on: ubuntu-latest
53+
if: github.event.schedule == '0 3 * * 1'
54+
55+
steps:
56+
- name: Checkout repository
57+
uses: actions/checkout@v4
58+
59+
- name: Build Debian ${{ matrix.cfg.version }}
60+
uses: pmorelli92/github-container-registry-build-push@2.2.1
61+
with:
62+
github-push-secret: ${{secrets.GITHUB_TOKEN}}
63+
docker-image-name: debian
64+
docker-image-tag: ${{ matrix.cfg.version }}
65+
dockerfile-path: ./debian.${{ matrix.cfg.version }}/Dockerfile

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Docker Images
22

33
<div style="float: right;">
4+
<a href="https://github.com/neomutt/docker/actions/workflows/debian.yml"><img src="https://github.com/neomutt/docker/actions/workflows/debian.yml/badge.svg" /></a>
45
<a href="https://github.com/neomutt/docker/actions/workflows/fedora.yml"><img src="https://github.com/neomutt/docker/actions/workflows/fedora.yml/badge.svg" /></a>
56
<a href="https://github.com/neomutt/docker/actions/workflows/ubuntu.yml"><img src="https://github.com/neomutt/docker/actions/workflows/ubuntu.yml/badge.svg" /></a>
67
</div>
@@ -13,27 +14,33 @@ To speed up the builds, we create Docker images containing a full development
1314
environment.
1415

1516
The main tests are done in an Ubuntu 24.04 environment.
16-
We also perform regular tests under Fedora.
17+
We also perform regular tests under Debian and Fedora.
1718

1819
## Building
1920

2021
The images are built by more GitHub Actions:
2122

23+
- [debian.yml](.github/workflows/debian.yml) -- Debian bookworm, trixie, forky
24+
(testing), sid (unstable)
2225
- [fedora.yml](.github/workflows/fedora.yml) -- Fedora 42, 43, 44 (rawhide)
2326
- [ubuntu.yml](.github/workflows/ubuntu.yml) -- Ubuntu 24.04
2427

2528
Stable releases are built **monthly** (1<sup>st</sup> of the month at 3am):
26-
Fedora 42, 43, Ubuntu 24.04.
29+
Debian bookworm, trixie and Fedora 42, 43, Ubuntu 24.04.
2730

2831
Development releases are built **weekly** (every Monday at 3am):
29-
Fedora 44 (rawhide).
32+
Debian forky (testing), sid (unstable) and Fedora 44 (rawhide).
3033

3134
All images are also rebuilt on push and can be triggered manually.
3235

3336
The builds are defined by Dockerfiles:
3437

3538
| Dockerfile | Description |
3639
| :------------------------------------------------------- | :--------------------- |
40+
| [debian.bookworm/Dockerfile](debian.bookworm/Dockerfile) | Debian bookworm (12) |
41+
| [debian.trixie/Dockerfile](debian.trixie/Dockerfile) | Debian trixie (13) |
42+
| [debian.forky/Dockerfile](debian.forky/Dockerfile) | Debian forky (testing) |
43+
| [debian.sid/Dockerfile](debian.sid/Dockerfile) | Debian sid (unstable) |
3744
| [fedora.42/Dockerfile](fedora.42/Dockerfile) | Fedora 42 |
3845
| [fedora.43/Dockerfile](fedora.43/Dockerfile) | Fedora 43 |
3946
| [fedora.44/Dockerfile](fedora.44/Dockerfile) | Fedora 44 (rawhide) |

debian.bookworm/Dockerfile

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
FROM debian:bookworm-slim
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN \
6+
apt update && \
7+
apt upgrade -y && \
8+
ln -fs /usr/share/zoneinfo/Europe/London /etc/localtime && \
9+
apt install -y \
10+
ccache \
11+
docbook-simple \
12+
docbook-xsl \
13+
gcc \
14+
gettext \
15+
git \
16+
gpgsm \
17+
jimsh \
18+
libgdbm-dev \
19+
libgnutls28-dev \
20+
libgpgme-dev \
21+
libgsasl-dev \
22+
libgss-dev \
23+
libidn2-dev \
24+
libkrb5-dev \
25+
liblmdb-dev \
26+
liblua5.2-dev \
27+
liblz4-dev \
28+
libncurses-dev \
29+
libnotmuch-dev \
30+
libpcre2-dev \
31+
librocksdb-dev \
32+
libsasl2-dev \
33+
libsqlite3-dev \
34+
libssl-dev \
35+
libtdb-dev \
36+
libxml2-utils \
37+
libzstd-dev \
38+
lua5.2 \
39+
lynx \
40+
make \
41+
mandoc \
42+
tzdata \
43+
w3m \
44+
xsltproc && \
45+
dpkg-reconfigure --frontend noninteractive tzdata && \
46+
apt autoclean && \
47+
apt autoremove

debian.forky/Dockerfile

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
FROM debian:forky-slim
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN \
6+
apt update && \
7+
apt upgrade -y && \
8+
ln -fs /usr/share/zoneinfo/Europe/London /etc/localtime && \
9+
apt install -y \
10+
ccache \
11+
docbook-simple \
12+
docbook-xsl \
13+
gcc \
14+
gettext \
15+
git \
16+
gpgsm \
17+
jimsh \
18+
libgdbm-dev \
19+
libgnutls28-dev \
20+
libgpgme-dev \
21+
libgsasl-dev \
22+
libgss-dev \
23+
libidn2-dev \
24+
libkrb5-dev \
25+
liblmdb-dev \
26+
liblua5.2-dev \
27+
liblz4-dev \
28+
libncurses-dev \
29+
libnotmuch-dev \
30+
libpcre2-dev \
31+
librocksdb-dev \
32+
libsasl2-dev \
33+
libsqlite3-dev \
34+
libssl-dev \
35+
libtdb-dev \
36+
libxml2-utils \
37+
libzstd-dev \
38+
lua5.2 \
39+
lynx \
40+
make \
41+
mandoc \
42+
tzdata \
43+
w3m \
44+
xsltproc && \
45+
dpkg-reconfigure --frontend noninteractive tzdata && \
46+
apt autoclean && \
47+
apt autoremove

debian.sid/Dockerfile

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
FROM debian:sid-slim
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN \
6+
apt update && \
7+
apt upgrade -y && \
8+
ln -fs /usr/share/zoneinfo/Europe/London /etc/localtime && \
9+
apt install -y \
10+
ccache \
11+
docbook-simple \
12+
docbook-xsl \
13+
gcc \
14+
gettext \
15+
git \
16+
gpgsm \
17+
jimsh \
18+
libgdbm-dev \
19+
libgnutls28-dev \
20+
libgpgme-dev \
21+
libgsasl-dev \
22+
libgss-dev \
23+
libidn2-dev \
24+
libkrb5-dev \
25+
liblmdb-dev \
26+
liblua5.2-dev \
27+
liblz4-dev \
28+
libncurses-dev \
29+
libnotmuch-dev \
30+
libpcre2-dev \
31+
librocksdb-dev \
32+
libsasl2-dev \
33+
libsqlite3-dev \
34+
libssl-dev \
35+
libtdb-dev \
36+
libxml2-utils \
37+
libzstd-dev \
38+
lua5.2 \
39+
lynx \
40+
make \
41+
mandoc \
42+
tzdata \
43+
w3m \
44+
xsltproc && \
45+
dpkg-reconfigure --frontend noninteractive tzdata && \
46+
apt autoclean && \
47+
apt autoremove

debian.trixie/Dockerfile

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
FROM debian:trixie-slim
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN \
6+
apt update && \
7+
apt upgrade -y && \
8+
ln -fs /usr/share/zoneinfo/Europe/London /etc/localtime && \
9+
apt install -y \
10+
ccache \
11+
docbook-simple \
12+
docbook-xsl \
13+
gcc \
14+
gettext \
15+
git \
16+
gpgsm \
17+
jimsh \
18+
libgdbm-dev \
19+
libgnutls28-dev \
20+
libgpgme-dev \
21+
libgsasl-dev \
22+
libgss-dev \
23+
libidn2-dev \
24+
libkrb5-dev \
25+
liblmdb-dev \
26+
liblua5.2-dev \
27+
liblz4-dev \
28+
libncurses-dev \
29+
libnotmuch-dev \
30+
libpcre2-dev \
31+
librocksdb-dev \
32+
libsasl2-dev \
33+
libsqlite3-dev \
34+
libssl-dev \
35+
libtdb-dev \
36+
libxml2-utils \
37+
libzstd-dev \
38+
lua5.2 \
39+
lynx \
40+
make \
41+
mandoc \
42+
tzdata \
43+
w3m \
44+
xsltproc && \
45+
dpkg-reconfigure --frontend noninteractive tzdata && \
46+
apt autoclean && \
47+
apt autoremove

0 commit comments

Comments
 (0)