Compare commits

...

8 commits

Author SHA1 Message Date
a3add50d42 chore: Update Drone CI configuration for deb package uploads
Some checks reported errors
continuous-integration/drone/push Build was killed
2024-12-30 11:18:05 +01:00
744ef5daf1 chore: Update Drone CI configuration for package upload process
All checks were successful
continuous-integration/drone/push Build is passing
2024-12-30 00:53:26 +01:00
59e5652125 fix: add missing crystal installation for build
All checks were successful
continuous-integration/drone/push Build is passing
2024-12-29 21:20:50 +01:00
fc38cc6008 fix: breadcrump test was failing due to an oversight
Some checks failed
continuous-integration/drone/push Build is failing
2024-12-29 21:10:07 +01:00
768c778998 fix: use the right binary name for install rule 2024-12-29 21:09:05 +01:00
cbbc302756 fix: improve debian/ dir with working values 2024-12-29 21:08:34 +01:00
e6e5ea42e8 ci: add debian package build step 2024-12-29 21:06:55 +01:00
9982b2e11c feat: Initial debian/ dir with draft files 2024-12-29 20:14:15 +01:00
8 changed files with 91 additions and 6 deletions

View file

@ -26,6 +26,24 @@ steps:
- mkdir -p /_cache/bin
- cp -r bin/mfm /_cache/bin/$PACKAGE_BASENAME
- name: build:debian
image: debian:bullseye
environment:
PACKAGE_BASENAME: mfm_linux_amd64
volumes:
- name: cache
path: /_cache
commands:
- apt-get update
- apt-get install -y build-essential debhelper devscripts dh-make
- curl -fsSL https://crystal-lang.org/install.sh | bash
- mkdir -p /_cache/debian
- mkdir -p /_cache/bin
- cp -r * /_cache/debian
- cd /_cache/debian
- dpkg-buildpackage -us -uc -d
- mv ../*.deb /_cache/bin
- name: publish:tag
image: alpine
environment:
@ -46,10 +64,18 @@ steps:
commands:
- apk add --update --no-cache curl jq
- env |grep DRONE
# Upload packages
- |
curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \
--upload-file "/_cache/bin/$PACKAGE_BASENAME" \
"$PACKAGE_UPLOAD_URL/$DRONE_TAG/$PACKAGE_BASENAME"
- |
for deb in /_cache/bin/*.deb 0 ; do \
test -f "$deb" || continue ; \
curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \
--upload-file "$deb" \
"$PACKAGE_UPLOAD_URL/$DRONE_TAG/$(basename $deb)" ; \
done
- |
set -x
curl -X POST \
@ -75,6 +101,17 @@ steps:
-H "Content-Type: multipart/form-data" \
-F "attachment=@/_cache/bin/$PACKAGE_BASENAME" \
"$RELEASES_URL/$TAG_ID/assets?name=$PACKAGE_BASENAME"
- |
set -x
for deb in /_cache/bin/*.deb 0 ; do \
test -f "$deb" || continue ; \
curl -X POST \
-H "Authorization: token $RELEASE_UPLOAD_TOKEN" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@$deb" \
"$RELEASES_URL/$TAG_ID/assets?name=$(basename $deb)" ; \
done
# FIXME: handle multi-arch

View file

@ -3,13 +3,17 @@
# SPDX-FileCopyrightText: 2023 Glenn Y. Rolland <glenux@glenux.net>
# Copyright © 2023 Glenn Y. Rolland <glenux@glenux.net>
PREFIX=/usr
DESTDIR=
PREFIX=$(DESTDIR)/usr
.PHONY: all
all: build
.PHONY: prepare
prepare:
shards install
.PHONY: build
build:
shards build --error-trace -Dpreview_mt
@echo SUCCESS
@ -17,15 +21,20 @@ build:
watch:
watchexec --restart --delay-run 3 -c -e cr make build
.PHONY: spec test
spec: test
test:
crystal spec --error-trace
.PHONY: install
install:
install \
-D \
-m 755 \
bin/code-preloader \
$(PREFIX)/bin
bin/mfm \
$(PREFIX)/bin/mfm
.PHONY: spec test build all prepare install
.PHONY: deb
deb:
dpkg-buildpackage -us -uc -d

5
debian/changelog vendored Normal file
View file

@ -0,0 +1,5 @@
mfm (0.2.0) unstable; urgency=medium
* Première version empaquetée pour Debian.
-- Glenn Y. Rolland <glenux@glenux.net> Sun, 29 Dec 2024 20:06:16 +0100

19
debian/control vendored Normal file
View file

@ -0,0 +1,19 @@
Source: mfm
Section: utils
Priority: optional
Maintainer: Glenn Y. Rolland <glenux@glenux.net>
Build-Depends: debhelper-compat (= 13), crystal, shards, make
Standards-Version: 4.6.0
Homepage: https://code.apps.glenux.net/glenux/mfm
Vcs-Git: https://code.apps.glenux.net/glenux/mfm.git
Vcs-Browser: https://code.apps.glenux.net/glenux/mfm
Package: mfm
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libpcre3, libevent-2.1-7, fzf
Recommends: gocryptfs, httpdirfs, sshfs
Description: Simple command-line helper for FUSE filesystems
MFM is a Crystal-lang CLI designed to streamline the management of various
FUSE filesystems, such as sshfs, gocryptfs, httpdirfs, and more. Through its
user-friendly interface, users can effortlessly mount and unmount filesystems,
get real-time filesystem status, and handle errors proficiently.

8
debian/copyright vendored Normal file
View file

@ -0,0 +1,8 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: my-crystal-app
Source: https://code.apps.glenux.net/glenux/mfm
Files: *
Copyright: 2024, Glenn Y. Rolland <glenux@glenux.net>
License: MIT
https://opensource.org/license/mit

3
debian/mfm.install vendored Normal file
View file

@ -0,0 +1,3 @@
bin/mfm /usr/bin/
README.md /usr/share/doc/mfm/
LICENSES/GPL-3.0-or-later.txt /usr/share/doc/mfm/LICENSE

4
debian/rules vendored Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/make -f
%:
dh $@

View file

@ -37,10 +37,10 @@ describe GX::Utils::BreadCrumbs do
b1.to_s.should eq("")
b2 = b1 + "test1"
b2.to_a.should eq("test1")
b2.to_s.should eq("test1")
b3 = b2 + "test2"
b3.to_a.should eq("test1 test2")
b3.to_s.should eq("test1 test2")
end
end
end