Skip to content

Commit de5ab4c

Browse files
committed
feat(install): add cross-platform install scripts, release packaging, update documentation
1 parent 1037d82 commit de5ab4c

24 files changed

Lines changed: 517 additions & 0 deletions

README.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,94 @@ Use `PITTERM_ENVIRONMENT=Development` to load `appsettings.Development.json`.
3535
```bash
3636
dotnet test
3737
```
38+
39+
## Release Packaging (Cross-Platform)
40+
41+
PitTerm can be packaged as self-contained binaries for Linux, macOS, and Windows.
42+
43+
### Build release artifacts (macOS/Linux)
44+
45+
```bash
46+
./scripts/release.sh 0.1.0
47+
```
48+
49+
### Build release artifacts (PowerShell)
50+
51+
```powershell
52+
./scripts/release.ps1 -Version 0.1.0
53+
```
54+
55+
Both scripts publish for:
56+
57+
- `linux-x64`
58+
- `linux-arm64`
59+
- `osx-x64`
60+
- `osx-arm64`
61+
- `win-x64`
62+
63+
Output locations:
64+
65+
- Raw publish output: `artifacts/publish/<rid>/`
66+
- Release archives: `artifacts/packages/`
67+
68+
Archive format:
69+
70+
- Windows: `.zip`
71+
- Linux/macOS: `.tar.gz`
72+
73+
### Manual publish example
74+
75+
```bash
76+
dotnet publish src/F1Tui/F1Tui.csproj \
77+
-c Release \
78+
-r osx-arm64 \
79+
--self-contained true \
80+
-p:PublishSingleFile=true \
81+
-p:IncludeNativeLibrariesForSelfExtract=true \
82+
-o artifacts/publish/osx-arm64
83+
```
84+
85+
### Terminal support notes
86+
87+
Recommended terminals:
88+
89+
- macOS: iTerm2, kitty, alacritty
90+
- Linux: kitty, alacritty, GNOME Terminal
91+
- Windows: Windows Terminal (PowerShell or pwsh shell)
92+
93+
If rendering appears odd, switch to Windows Terminal or a modern VT-compatible emulator.
94+
95+
## Installation (One-Liner)
96+
97+
You can continue creating GitHub Releases manually (recommended if you want custom release notes/comments), then let users install from release assets.
98+
99+
### macOS/Linux
100+
101+
```bash
102+
curl -fsSL https://raw.githubusercontent.com/jntm7/pitterm/main/scripts/install.sh | bash
103+
```
104+
105+
Install a specific version tag:
106+
107+
```bash
108+
curl -fsSL https://raw.githubusercontent.com/jntm7/pitterm/main/scripts/install.sh | bash -s -- --version v0.1.0
109+
```
110+
111+
### Windows PowerShell
112+
113+
```powershell
114+
irm https://raw.githubusercontent.com/jntm7/pitterm/main/scripts/install.ps1 | iex
115+
```
116+
117+
Install a specific version tag:
118+
119+
```powershell
120+
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/jntm7/pitterm/main/scripts/install.ps1))) -Version v0.1.0
121+
```
122+
123+
### Recommended release flow
124+
125+
1. Build artifacts: `./scripts/release.sh <version>` or `./scripts/release.ps1 -Version <version>`
126+
2. Create GitHub Release manually and write custom notes
127+
3. Upload files from `artifacts/packages/`
128+
4. Users install with one-line scripts above

0 commit comments

Comments
 (0)