Skip to content

Commit cd1cb27

Browse files
Fix macOS build: vendor OpenSSL, improve release asset names
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 10d7cfa commit cd1cb27

File tree

3 files changed

+48
-13
lines changed

3 files changed

+48
-13
lines changed

.github/workflows/release.yml

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,27 @@ permissions:
1010

1111
jobs:
1212
build:
13-
name: Build ${{ matrix.target }}
13+
name: Build ${{ matrix.name }}
1414
runs-on: ${{ matrix.os }}
1515
strategy:
1616
fail-fast: false
1717
matrix:
1818
include:
19-
- target: x86_64-unknown-linux-gnu
19+
- name: Linux (x86_64)
20+
target: x86_64-unknown-linux-gnu
2021
os: ubuntu-latest
2122
archive: tar.gz
22-
- target: x86_64-apple-darwin
23+
asset_name: ironpad-linux-x86_64
24+
- name: macOS (x86_64)
25+
target: x86_64-apple-darwin
2326
os: macos-latest
2427
archive: tar.gz
25-
- target: x86_64-pc-windows-msvc
28+
asset_name: ironpad-macos-x86_64
29+
- name: Windows (x86_64)
30+
target: x86_64-pc-windows-msvc
2631
os: windows-latest
2732
archive: zip
33+
asset_name: ironpad-windows-x86_64
2834

2935
steps:
3036
- name: Checkout
@@ -35,6 +41,10 @@ jobs:
3541
with:
3642
targets: ${{ matrix.target }}
3743

44+
- name: Install system dependencies (Linux)
45+
if: runner.os == 'Linux'
46+
run: sudo apt-get update && sudo apt-get install -y cmake
47+
3848
- name: Install Node.js
3949
uses: actions/setup-node@v4
4050
with:
@@ -60,10 +70,9 @@ jobs:
6070
if: matrix.archive == 'tar.gz'
6171
shell: bash
6272
run: |
63-
BINARY_NAME="ironpad"
64-
RELEASE_DIR="ironpad-${{ github.ref_name }}-${{ matrix.target }}"
73+
RELEASE_DIR="${{ matrix.asset_name }}-${{ github.ref_name }}"
6574
mkdir -p "$RELEASE_DIR"
66-
cp "backend/target/${{ matrix.target }}/release/$BINARY_NAME" "$RELEASE_DIR/"
75+
cp "backend/target/${{ matrix.target }}/release/ironpad" "$RELEASE_DIR/"
6776
cp README.md LICENSE "$RELEASE_DIR/"
6877
tar czf "$RELEASE_DIR.tar.gz" "$RELEASE_DIR"
6978
echo "ASSET=$RELEASE_DIR.tar.gz" >> $GITHUB_ENV
@@ -72,18 +81,17 @@ jobs:
7281
if: matrix.archive == 'zip'
7382
shell: bash
7483
run: |
75-
BINARY_NAME="ironpad.exe"
76-
RELEASE_DIR="ironpad-${{ github.ref_name }}-${{ matrix.target }}"
84+
RELEASE_DIR="${{ matrix.asset_name }}-${{ github.ref_name }}"
7785
mkdir -p "$RELEASE_DIR"
78-
cp "backend/target/${{ matrix.target }}/release/$BINARY_NAME" "$RELEASE_DIR/"
86+
cp "backend/target/${{ matrix.target }}/release/ironpad.exe" "$RELEASE_DIR/"
7987
cp README.md LICENSE "$RELEASE_DIR/"
8088
7z a "$RELEASE_DIR.zip" "$RELEASE_DIR"
8189
echo "ASSET=$RELEASE_DIR.zip" >> $GITHUB_ENV
8290
8391
- name: Upload artifact
8492
uses: actions/upload-artifact@v4
8593
with:
86-
name: ironpad-${{ matrix.target }}
94+
name: ${{ matrix.asset_name }}
8795
path: ${{ env.ASSET }}
8896

8997
release:
@@ -99,6 +107,23 @@ jobs:
99107
- name: Create GitHub Release
100108
uses: softprops/action-gh-release@v2
101109
with:
110+
name: Ironpad ${{ github.ref_name }}
111+
body: |
112+
## Downloads
113+
114+
| Platform | File |
115+
|----------|------|
116+
| Windows (x86_64) | `ironpad-windows-x86_64-${{ github.ref_name }}.zip` |
117+
| macOS (x86_64) | `ironpad-macos-x86_64-${{ github.ref_name }}.tar.gz` |
118+
| Linux (x86_64) | `ironpad-linux-x86_64-${{ github.ref_name }}.tar.gz` |
119+
120+
**Linux:** Extract the tar.gz and run `./ironpad`. Works on any distro -- it's a standalone binary with no dependencies.
121+
122+
**macOS:** Extract and run. You may need to allow it in System Settings > Privacy & Security on first launch.
123+
124+
**Windows:** Extract the zip and run `ironpad.exe`.
125+
126+
---
102127
files: artifacts/**/*
103128
generate_release_notes: true
104129
env:

backend/Cargo.lock

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ serde_yaml = "0.9"
2121
# Markdown parsing (CommonMark)
2222
markdown = "1.0.0-alpha.22"
2323

24-
# Git operations
25-
git2 = "0.19"
24+
# Git operations (vendored-openssl for cross-platform CI builds)
25+
git2 = { version = "0.19", features = ["vendored-openssl"] }
2626

2727

2828
# File system watching

0 commit comments

Comments
 (0)