Skip to content

Commit 1572e2d

Browse files
committed
CI: build .deb and upload to download.delta.chat
1 parent 4b7f802 commit 1572e2d

File tree

2 files changed

+125
-0
lines changed

2 files changed

+125
-0
lines changed

.github/workflows/build-deb.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: build
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- github-ci
8+
9+
# Allows you to run this workflow manually from the Actions tab
10+
workflow_dispatch:
11+
12+
jobs:
13+
build-amd64:
14+
runs-on: ubuntu-latest
15+
container: debian:12
16+
steps:
17+
- name: install dependencies
18+
run: |
19+
echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc
20+
apt update
21+
apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync
22+
23+
- name: clone repository
24+
run: git clone https://github.com/chatmail/dovecot
25+
26+
- name: build
27+
run: |
28+
cd dovecot
29+
DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc
30+
31+
- name: upload .deb files
32+
run: |
33+
mkdir -p "$HOME/.ssh"
34+
echo "${{ secrets.KEY }}" > "$HOME/.ssh/key"
35+
chmod 600 "$HOME/.ssh/key"
36+
rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/build-area/ "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/"
37+
38+
build-arm:
39+
runs-on: ubuntu-24.04-arm
40+
container: debian:12
41+
steps:
42+
- name: install dependencies
43+
run: |
44+
echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc
45+
apt update
46+
apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync
47+
48+
- name: clone repository
49+
run: git clone https://github.com/chatmail/dovecot
50+
51+
- name: build
52+
run: |
53+
cd dovecot
54+
DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc
55+
56+
- name: upload .deb files
57+
run: |
58+
mkdir -p "$HOME/.ssh"
59+
echo "${{ secrets.KEY }}" > "$HOME/.ssh/key"
60+
chmod 600 "$HOME/.ssh/key"
61+
rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/build-area/ "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/"
62+
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: staging
2+
3+
on:
4+
pull_request:
5+
6+
# Allows you to run this workflow manually from the Actions tab
7+
workflow_dispatch:
8+
9+
jobs:
10+
staging-amd64:
11+
runs-on: ubuntu-latest
12+
container: debian:12
13+
steps:
14+
- name: install dependencies
15+
run: |
16+
echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc
17+
apt update
18+
apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync
19+
20+
- uses: actions/checkout@v4
21+
with:
22+
path: dovecot
23+
show-progress: false
24+
fetch-depth: 0
25+
26+
- name: build
27+
run: |
28+
cd dovecot
29+
DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar --git-ignore-branch -us -uc
30+
31+
- name: upload .deb files
32+
run: |
33+
mkdir -p "$HOME/.ssh"
34+
echo "${{ secrets.KEY }}" > "$HOME/.ssh/key"
35+
chmod 600 "$HOME/.ssh/key"
36+
rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/build-area/ "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/"
37+
38+
staging-arm:
39+
runs-on: ubuntu-24.04-arm
40+
container: debian:12
41+
steps:
42+
- name: install dependencies
43+
run: |
44+
echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc
45+
apt update
46+
apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync
47+
48+
- name: clone repository
49+
run: git clone https://github.com/chatmail/dovecot
50+
51+
- name: build
52+
run: |
53+
cd dovecot
54+
DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc
55+
56+
- name: upload .deb files
57+
run: |
58+
mkdir -p "$HOME/.ssh"
59+
echo "${{ secrets.KEY }}" > "$HOME/.ssh/key"
60+
chmod 600 "$HOME/.ssh/key"
61+
mv $GITHUB_WORKSPACE/build-area staging-$GITHUB_REF_NAME
62+
rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" staging-$GITHUB_REF_NAME "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/"
63+

0 commit comments

Comments
 (0)