feat: ESLint, shell completions, Docker, nfpm packaging, CI/CD

- ESLint with typescript-eslint + prettier (eslint.config.js)
- Shell completions for bash and fish (scripts/generate-completions.ts)
- Multi-stage Dockerfile for bastion (fedora:43 + dnsmasq + node)
- nfpm.yaml for RPM/DEB packaging with bun-compiled binary
- Build scripts: build-rpm.sh, build-bastion.sh, publish-rpm/deb.sh
- Gitea Actions CI/CD: lint, typecheck, test, build, publish

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Michal
2026-03-17 21:51:01 +00:00
parent 520af41a52
commit ed1df8a77c
22 changed files with 1885 additions and 75 deletions

20
bastion/nfpm.yaml Normal file
View File

@@ -0,0 +1,20 @@
name: lab
arch: amd64
version: 0.1.0
release: "1"
maintainer: michal
description: Lab infrastructure CLI for bare-metal provisioning
license: MIT
contents:
- src: ./dist/lab
dst: /usr/bin/lab
file_info:
mode: 0755
- src: ./completions/lab.bash
dst: /usr/share/bash-completion/completions/lab
file_info:
mode: 0644
- src: ./completions/lab.fish
dst: /usr/share/fish/vendor_completions.d/lab.fish
file_info:
mode: 0644