@@ -10,21 +10,27 @@ permissions:
1010
1111jobs :
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
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 :
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 :
0 commit comments