solstice-ci/.mise/tasks/pkg/build
Till Wegmueller 1c5dc338f5
Add Podman Compose deployment stack with Traefik and services integration
This commit introduces:
- A production-ready Podman Compose stack using Traefik as a reverse proxy with Let's Encrypt integration.
- Per-environment logical separation for Postgres, RabbitMQ, and MinIO services.
- New deployment utilities, including a `.env.sample` template, `compose.yml`, and setup scripts for MinIO and Postgres.
- Updates to `github-integration` HTTP server with basic webhook handling using `axum` and configurable paths.
- Adjustments to packaging tasks for better tarball generation via `git archive`.
- Expanded dependencies for `PKGBUILD` to support SQLite and PostgreSQL libraries.
- Containerfiles for orchestrator and integration services to enable Rust multi-stage builds without sccache.

This enables simplified and secure CI deployments with automatic routing, TLS, and volume persistence.
2025-11-08 20:21:57 +00:00

26 lines
985 B
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# Build Arch packages for Solstice CI components.
# Requires: Arch Linux with base-devel, rust, cargo, makepkg.
# Outputs: pkg files under packaging/arch/*/*.pkg.tar.*
ROOT_DIR=$(cd "$(dirname "$0")/../../../" && pwd)
cd "$ROOT_DIR"
# Create a clean source tarball of the repository
TARBALL="solstice-ci.tar.gz"
TMPDIR=$(mktemp -d)
trap 'rm -rf "$TMPDIR"' EXIT
# Create a tarball with a top-level solstice-ci/ prefix so PKGBUILDs can `cd "$srcdir/solstice-ci"`
# Use git archive to ensure only tracked files are included and the prefix is present.
git archive --format=tar.gz --prefix=solstice-ci/ -o "$TMPDIR/$TARBALL" HEAD
for pkg in solstice-orchestrator solstice-forge-integration; do
PKG_DIR="$ROOT_DIR/packaging/arch/$pkg"
mkdir -p "$PKG_DIR"
cp "$TMPDIR/$TARBALL" "$PKG_DIR/$TARBALL"
( cd "$PKG_DIR" && makepkg -fC --noconfirm )
echo "Built package(s) in $PKG_DIR:" >&2
ls -1 "$PKG_DIR"/*.pkg.tar.* 2>/dev/null || true
done