-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (104 loc) · 3.2 KB
/
Copy pathbuild.yml
File metadata and controls
129 lines (104 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Build Executables
on:
push:
tags:
- "v*"
workflow_dispatch:
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
target: linux-x64
artifact: semble-linux-x64
- os: ubuntu-22.04-arm
target: linux-arm64
artifact: semble-linux-arm64
- os: macos-14
target: macos-arm64
artifact: semble-macos-arm64
- os: windows-latest
target: windows-x64
artifact: semble-windows-x64.exe
runs-on: ${{ matrix.os }}
name: Build (${{ matrix.target }})
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: uv sync --extra mcp
- name: Build executable
run: uv run python build.py --name semble --with-mcp
- name: Smoke test (Unix)
if: runner.os != 'Windows'
run: |
chmod +x dist/semble
./dist/semble search --help
./dist/semble init --help
- name: Smoke test (Windows)
if: runner.os == 'Windows'
run: |
dist\semble.exe search --help
dist\semble.exe init --help
- name: Rename artifact (Unix)
if: runner.os != 'Windows'
run: mv dist/semble dist/${{ matrix.artifact }}
- name: Rename artifact (Windows)
if: runner.os == 'Windows'
run: mv dist/semble.exe dist/${{ matrix.artifact }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
path: dist/${{ matrix.artifact }}
retention-days: 30
release:
needs: [build]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/
merge-multiple: true
- name: Generate checksums
run: |
cd artifacts
sha256sum * > checksums-sha256.txt
cat checksums-sha256.txt
- name: Create release
uses: softprops/action-gh-release@v2
with:
files: |
artifacts/*
generate_release_notes: true
body: |
## Standalone Executables
No Python installation required. Download the binary for your platform and run it directly.
| Platform | Architecture | File |
|----------|-------------|------|
| Linux | x64 | `semble-linux-x64` |
| Linux | ARM64 | `semble-linux-arm64` |
| macOS | Apple Silicon (ARM64) | `semble-macos-arm64` |
| Windows | x64 | `semble-windows-x64.exe` |
### Usage
```bash
chmod +x semble-*
./semble-linux-x64 search "authentication flow" ./my-project
```
### Verify checksums
```bash
sha256sum -c checksums-sha256.txt
```