|
1 | 1 | # CI/CD |
2 | 2 |
|
3 | 3 | - CI: Builds the repository on every push and PR (.github/workflows/ci.yml). |
4 | | -- CD: Publishes a single-file executable for `server.Stdio` and uploads only that file as an artifact (.github/workflows/release.yml). |
| 4 | +- CD: Publishes single-file executables for `server.Stdio` for three OS targets in one run (.github/workflows/release.yml). |
5 | 5 |
|
6 | 6 | How to trigger deployment: |
7 | 7 | - Tag-based: push a tag like `v1.0.0`. |
8 | | -- Manual: Actions → "Release single-file (server.Stdio)" → Run workflow and choose a RID (default `linux-x64`). |
| 8 | +- Manual: Actions → "Release single-file (server.Stdio)" → Run workflow (no inputs). |
9 | 9 |
|
10 | | -Change target runtime: |
11 | | -- Provide a different RID when running the workflow (examples: `linux-x64`, `win-x64`, `osx-arm64`). |
| 10 | +Targets built (one shot): |
| 11 | +- linux-x64, win-x64, osx-arm64 |
| 12 | + |
| 13 | +Change targets: |
| 14 | +- Edit the matrix in `.github/workflows/release.yml` (key `matrix.rid`) to add/remove RIDs. |
12 | 15 |
|
13 | 16 | Result: |
14 | | -- Artifact name: `io-aerosapce-mcp-<tag or branch>-<RID>` |
15 | | -- Contains only the produced executable. |
| 17 | +- Three artifacts: |
| 18 | + - `io-aerosapce-mcp-<tag or branch>-linux-x64` |
| 19 | + - `io-aerosapce-mcp-<tag or branch>-win-x64` |
| 20 | + - `io-aerosapce-mcp-<tag or branch>-osx-arm64` |
| 21 | +- Each contains only the produced executable. |
16 | 22 |
|
17 | 23 | Note on cross-publishing (ubuntu-latest): |
18 | | -- Yes, you can generate Windows (.exe) or macOS binaries from Ubuntu by setting RID to `win-x64` or `osx-arm64`. |
| 24 | +- Yes, Windows and macOS binaries are generated on Ubuntu by setting the RID. |
19 | 25 | - macOS outputs will be unsigned; signing/notarization must happen on macOS if required. |
20 | 26 |
|
21 | 27 | Local single-file publish examples: |
|
0 commit comments