Skip to content

Conversation

@m1ngsama
Copy link
Owner

@m1ngsama m1ngsama commented Dec 2, 2025

GitHub Actions Workflows

CI (Continuous Integration)

Runs on every push/PR:

  • ✓ Build on Ubuntu and macOS
  • ✓ AddressSanitizer build
  • ✓ Memory leak checks (Valgrind on Linux)

Release (Continuous Deployment)

Triggered by version tags (e.g., v1.0.0):

  • ✓ Build binaries for all platforms:
    • Linux AMD64
    • Linux ARM64
    • macOS Intel
    • macOS Apple Silicon
  • ✓ Generate SHA256 checksums
  • ✓ Create GitHub release automatically

Deployment Tools

One-line installer

curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh
  • Auto-detects OS and architecture
  • Downloads from latest release
  • Installs to /usr/local/bin

systemd service

  • tnt.service - Production-ready unit file
  • Security hardening (NoNewPrivileges, ProtectSystem, etc.)
  • Auto-restart on failure
  • Runs as dedicated user

Documentation

  • README - Classic Unix man page format
  • README.md - Minimal GitHub readme
  • DEPLOYMENT.md - Complete deployment guide
  • CICD.md - CI/CD workflow guide

README Rewrite

Followed classic Unix documentation style:

Before: 200+ lines, emojis, badges, verbose
After: 82 lines (markdown), 98 lines (man page), pure content

Two formats:

  • README - BSD-style man page (can view with less)
  • README.md - Minimal markdown for GitHub

Philosophy: Information-dense, no fluff, reference manual style.

Creating a Release

# Tag the release
git tag v1.0.0

# Push tag
git push origin v1.0.0

# GitHub Actions automatically:
# 1. Builds binaries for all platforms
# 2. Creates release with binaries
# 3. Generates install instructions

Benefits

  • ✓ No manual builds needed
  • ✓ Consistent binaries across platforms
  • ✓ Easy deployment to multiple servers
  • ✓ Automated testing on every change
  • ✓ Production-ready systemd service
  • ✓ Classic Unix documentation style

Type: Infrastructure + Documentation

GitHub Actions workflows:
- ci.yml: Auto-test on push/PR
  * Build on Ubuntu and macOS
  * Run AddressSanitizer
  * Memory leak checks with Valgrind

- release.yml: Auto-release on tags
  * Build for Linux (amd64, arm64)
  * Build for macOS (amd64, arm64)
  * Generate checksums
  * Create GitHub release with binaries

Deployment tools:
- install.sh: One-line installer
  * Auto-detect OS and arch
  * Download from releases
  * Install to /usr/local/bin

- tnt.service: systemd unit file
  * Auto-restart on failure
  * Security hardening
  * Runs as dedicated user

- DEPLOYMENT.md: Complete deployment guide
  * Quick install
  * systemd setup
  * Firewall config
  * Docker alternative

Usage:
  curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh

Create release:
  git tag v1.0.0
  git push origin v1.0.0
@m1ngsama m1ngsama force-pushed the feat/cicd-deployment branch from f1323ae to 8e24ae5 Compare December 2, 2025 04:47
@m1ngsama m1ngsama merged commit 27854e8 into main Dec 2, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants