Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e480141e89 | ||
|
|
e1ae34a336 |
@@ -15,19 +15,19 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- os: windows
|
||||
arch: amd64
|
||||
ext: .exe
|
||||
- os: linux
|
||||
arch: amd64
|
||||
ext: ""
|
||||
#- os: windows
|
||||
# arch: amd64
|
||||
# ext: .exe
|
||||
#- os: linux
|
||||
# arch: amd64
|
||||
# ext: ""
|
||||
- os: linux
|
||||
arch: arm64
|
||||
ext: ""
|
||||
- os: linux
|
||||
arch: arm
|
||||
arm_version: 7
|
||||
ext: ""
|
||||
#- os: linux
|
||||
# arch: arm
|
||||
# arm_version: 7
|
||||
# ext: ""
|
||||
|
||||
steps:
|
||||
|
||||
@@ -79,7 +79,7 @@ jobs:
|
||||
export GOARM=${{ matrix.arm_version }}
|
||||
fi
|
||||
|
||||
OUTPUT="${OUTPUT}"
|
||||
OUTPUT="${OUTPUT}${{ matrix.ext }}"
|
||||
echo "Building $OUTPUT"
|
||||
GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} go build -ldflags="-s -w" -trimpath -o "$OUTPUT"
|
||||
shell: bash
|
||||
@@ -98,6 +98,7 @@ jobs:
|
||||
# 2. Create Directory Structure
|
||||
mkdir -p $BUILD_DIR/usr/bin
|
||||
mkdir -p $BUILD_DIR/usr/share/$PKG_NAME
|
||||
mkdir -p $BUILD_DIR/etc/systemd/system
|
||||
mkdir -p $BUILD_DIR/DEBIAN
|
||||
|
||||
# 3. Copy Files
|
||||
@@ -105,7 +106,33 @@ jobs:
|
||||
cp -r ./web $BUILD_DIR/usr/share/$PKG_NAME/
|
||||
chmod +x $BUILD_DIR/usr/bin/$PKG_NAME
|
||||
|
||||
# 4. Create Control File
|
||||
# 4. Handle .env (Copy as a .template so it doesn't overwrite existing ones)
|
||||
if [ -f ".env" ]; then
|
||||
cp .env $BUILD_DIR/usr/share/$PKG_NAME/.env.template
|
||||
else
|
||||
echo "PORT=8080" > $BUILD_DIR/usr/share/$PKG_NAME/.env.template
|
||||
fi
|
||||
|
||||
# 5. Create the systemd Service File
|
||||
cat <<EOF > $BUILD_DIR/etc/systemd/system/$PKG_NAME.service
|
||||
[Unit]
|
||||
Description=Slideshow Application Service
|
||||
After=graphical.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment=DISPLAY=:0
|
||||
Environment=XAUTHORITY=/home/youruser/.Xauthority
|
||||
ExecStart=/usr/bin/$PKG_NAME
|
||||
WorkingDirectory=/usr/share/$PKG_NAME
|
||||
Restart=always
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# 6. Create Control File
|
||||
cat <<EOF > $BUILD_DIR/DEBIAN/control
|
||||
Package: $PKG_NAME
|
||||
Version: $VERSION
|
||||
@@ -116,7 +143,28 @@ jobs:
|
||||
Description: Slideshow Application
|
||||
EOF
|
||||
|
||||
# 5. Build .deb
|
||||
# 7. Optional: Add post-install script to enable service automatically
|
||||
echo "create service"
|
||||
cat <<EOF > $BUILD_DIR/DEBIAN/postinst
|
||||
#!/bin/sh
|
||||
# Check if .env exists in the target share folder
|
||||
if [ ! -f "/usr/share/$PKG_NAME/.env" ]; then
|
||||
echo "Creating new .env from template..."
|
||||
cp /usr/share/$PKG_NAME/.env.template /usr/share/$PKG_NAME/.env
|
||||
else
|
||||
echo ".env already exists, skipping template copy to preserve settings."
|
||||
fi
|
||||
|
||||
echo "reload"
|
||||
systemctl daemon-reload
|
||||
echo "enable service"
|
||||
systemctl enable $PKG_NAME.service
|
||||
echo "start service"
|
||||
systemctl start $PKG_NAME.service
|
||||
EOF
|
||||
chmod 555 $BUILD_DIR/DEBIAN/postinst
|
||||
|
||||
# 8. Build .deb
|
||||
dpkg-deb --build $BUILD_DIR
|
||||
shell: bash
|
||||
|
||||
|
||||
Reference in New Issue
Block a user