-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Adds infrastructure for building RPM and DEB packages
- Loading branch information
1 parent
fbb39bb
commit b9b0780
Showing
14 changed files
with
193 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,7 @@ | ||
/target | ||
/rpmbuild | ||
.env | ||
deb/usr/local/bin/compose-watcher | ||
rpm/usr/local/bin/compose-watcher | ||
*.deb | ||
*.rpm |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
[package] | ||
name = "contpose" | ||
name = "compose-watcher" | ||
version = "0.1.0" | ||
edition = "2021" | ||
license = "MIT" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
.PHONY: build-deb build-rpm | ||
|
||
WORK_DIR=$(shell pwd) | ||
TARGET_BIN=target/x86_64-unknown-linux-musl/release/compose-watcher | ||
USR_BIN_DEB=deb/usr/local/bin/compose-watcher | ||
USR_BIN_RPM=rpm/usr/local/bin/compose-watcher | ||
|
||
$(TARGET_BIN): | ||
CARGO_TARGET_DIR="./target" cargo build --release --target "x86_64-unknown-linux-musl" | ||
|
||
$(USR_BIN_RPM): $(TARGET_BIN) | ||
mkdir -p deb/usr/local/bin/ | ||
mv $(TARGET_BIN) $(USR_BIN_RPM) | ||
|
||
$(USR_BIN_DEB): $(TARGET_BIN) | ||
mkdir -p deb/usr/local/bin/ | ||
mv $(TARGET_BIN) $(USR_BIN_DEB) | ||
|
||
build-deb: $(USR_BIN_DEB) | ||
dpkg-deb --build deb | ||
mv deb.deb compose-watcher.deb | ||
|
||
build-rpm: $(USR_BIN_RPM) | ||
cp -r rpm/ rpmbuild | ||
mkdir -p rpmbuild/opt/compose-watcher | ||
rpmbuild --target=x86_64 --buildroot $(WORK_DIR)/rpmbuild \ | ||
-bb rpmbuild/compose-watcher.spec |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
Package: compose-watcher | ||
Version: 0.1 | ||
Maintainer: ixpantia S.A. | ||
Architecture: amd64 | ||
Description: Continously Deploy services with Docker Compose | ||
Depends: docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, docker-compose-plugin |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#!/bin/sh | ||
set -e | ||
|
||
# Create the 'compose-watcher' user and home directory if it doesn't exist | ||
if ! id -u compose-watcher > /dev/null 2>&1; then | ||
useradd -r -d /opt/compose-watcher -s /bin/false compose-watcher | ||
mkdir -p /opt/compose-watcher | ||
chown compose-watcher:compose-watcher /opt/compose-watcher | ||
fi | ||
|
||
# Create the compose-watcher.toml file if it doesn't exist | ||
if [ ! -f /opt/compose-watcher/compose-watcher.toml ]; then | ||
echo "delay=60 # Will watch for updates every 60 seconds" >> /opt/compose-watcher/compose-watcher.toml | ||
chown compose-watcher:compose-watcher /opt/compose-watcher/compose-watcher.toml | ||
fi | ||
|
||
# Restart the service on upgrade | ||
if [ "$1" = "configure" ]; then | ||
systemctl daemon-reload || true | ||
systemctl enable compose-watcher.service || true | ||
systemctl start compose-watcher.service || true | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#!/bin/sh | ||
set -e | ||
|
||
if [ "$1" = "purge" ]; then | ||
systemctl daemon-reload || true | ||
rm -f /lib/systemd/system/compose-watcher.service | ||
fi | ||
|
||
rm -rf /usr/local/bin/compose-watcher | ||
|
||
if [ "$1" = "purge" ]; then | ||
# Remove the compose-watcher user and its home directory | ||
userdel -r compose-watcher || true | ||
rm -rf /opt/compose-watcher | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#!/bin/sh | ||
set -e | ||
|
||
if [ "$1" = "remove" ]; then | ||
systemctl stop compose-watcher.service || true | ||
systemctl disable compose-watcher.service || true | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/usr/bin/make -f | ||
|
||
%: | ||
dh $@ | ||
|
||
override_dh_installinit: | ||
dh_installinit --restart-after-upgrade | ||
dh_systemd_enable | ||
dh_systemd_start |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
[Unit] | ||
Description=Compose Watcher | ||
After=docker.service | ||
BindsTo=docker.service | ||
StartLimitIntervalSec=0 | ||
[Service] | ||
Type=simple | ||
Restart=always | ||
RestartSec=1 | ||
User=compose-watcher | ||
Environment="RUST_LOG=info" | ||
ExecStart=/usr/local/bin/compose-watcher --config /opt/compose-watcher/compose-watcher.toml | ||
ExecReload=/bin/kill -HUP $MAINPID | ||
WorkingDirectory=/opt/compose-watcher | ||
|
||
[Install] | ||
WantedBy=multi-user.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
Buildroot: /home/andres/projects/ixpantia/imasd/contpose/compose-watcher-0.1 | ||
Name: compose-watcher | ||
Version: 0.1 | ||
Release: 0 | ||
Summary: Continously Deploy services with Docker Compose | ||
License: see /usr/share/doc/compose-watcher/copyright | ||
Distribution: Debian | ||
Group: Converted/unknown | ||
Requires: docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin | ||
|
||
%define _rpmdir ../ | ||
%define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm | ||
%define _unpackaged_files_terminate_build 0 | ||
|
||
%post | ||
#!/bin/sh | ||
set -e | ||
|
||
# Create the 'compose-watcher' user and home directory if it doesn't exist | ||
if ! id -u compose-watcher > /dev/null 2>&1; then | ||
useradd -r -d /opt/compose-watcher -s /bin/false compose-watcher | ||
mkdir -p /opt/compose-watcher | ||
chown compose-watcher:compose-watcher /opt/compose-watcher | ||
fi | ||
|
||
# Create the compose-watcher.toml file if it doesn't exist | ||
if [ ! -f /opt/compose-watcher/compose-watcher.toml ]; then | ||
echo "delay=60 # Will watch for updates every 60 seconds" >> /opt/compose-watcher/compose-watcher.toml | ||
chown compose-watcher:compose-watcher /opt/compose-watcher/compose-watcher.toml | ||
fi | ||
|
||
# Restart the service on upgrade | ||
systemctl daemon-reload || true | ||
systemctl enable compose-watcher.service || true | ||
systemctl start compose-watcher.service || true | ||
|
||
|
||
%preun | ||
#!/bin/sh | ||
set -e | ||
|
||
systemctl stop compose-watcher.service || true | ||
systemctl disable compose-watcher.service || true | ||
|
||
|
||
%postun | ||
#!/bin/sh | ||
set -e | ||
|
||
systemctl daemon-reload || true | ||
rm -f /lib/systemd/system/compose-watcher.service | ||
|
||
rm -rf /usr/local/bin/compose-watcher | ||
|
||
# Remove the compose-watcher user and its home directory | ||
userdel -r compose-watcher || true | ||
rm -rf /opt/compose-watcher | ||
|
||
|
||
%description | ||
|
||
%files | ||
%dir "/opt/compose-watcher" | ||
"/lib/systemd/system/compose-watcher.service" | ||
"/usr/local/bin/compose-watcher" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
[Unit] | ||
Description=Compose Watcher | ||
After=docker.service | ||
BindsTo=docker.service | ||
StartLimitIntervalSec=0 | ||
[Service] | ||
Type=simple | ||
Restart=always | ||
RestartSec=1 | ||
User=compose-watcher | ||
Environment="RUST_LOG=info" | ||
ExecStart=/usr/local/bin/compose-watcher --config /opt/compose-watcher/compose-watcher.toml | ||
ExecReload=/bin/kill -HUP $MAINPID | ||
WorkingDirectory=/opt/compose-watcher | ||
|
||
[Install] | ||
WantedBy=multi-user.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters