Skip to content

Commit 4231f5d

Browse files
committed
feat: Add ARM64 builds and universal installation script
- Add ARM64 builds for all platforms (Windows, Linux, macOS) in release workflow - Create universal installation script (install.sh) with automatic platform detection - Implement smart fallback from ARM64 to x64 when ARM64 builds unavailable - Add checksum verification for secure downloads - Support both user and system-wide installation modes - Update README.md with new installation methods and ARM64 support documentation - Maintain backward compatibility with existing x64 builds Fixes #45
1 parent 90724e3 commit 4231f5d

File tree

3 files changed

+690
-0
lines changed

3 files changed

+690
-0
lines changed

.github/workflows/release.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,36 @@ jobs:
3030

3131
- name: Publish
3232
run: |
33+
# x64 builds
3334
dotnet publish src/DotNetApiDiff/DotNetApiDiff.csproj --configuration Release --output ./publish/win-x64 --runtime win-x64 --self-contained true -p:PublishSingleFile=true -p:Version=${GITHUB_REF#refs/tags/v}
3435
dotnet publish src/DotNetApiDiff/DotNetApiDiff.csproj --configuration Release --output ./publish/linux-x64 --runtime linux-x64 --self-contained true -p:PublishSingleFile=true -p:Version=${GITHUB_REF#refs/tags/v}
3536
dotnet publish src/DotNetApiDiff/DotNetApiDiff.csproj --configuration Release --output ./publish/osx-x64 --runtime osx-x64 --self-contained true -p:PublishSingleFile=true -p:Version=${GITHUB_REF#refs/tags/v}
3637
38+
# ARM64 builds
39+
dotnet publish src/DotNetApiDiff/DotNetApiDiff.csproj --configuration Release --output ./publish/win-arm64 --runtime win-arm64 --self-contained true -p:PublishSingleFile=true -p:Version=${GITHUB_REF#refs/tags/v}
40+
dotnet publish src/DotNetApiDiff/DotNetApiDiff.csproj --configuration Release --output ./publish/linux-arm64 --runtime linux-arm64 --self-contained true -p:PublishSingleFile=true -p:Version=${GITHUB_REF#refs/tags/v}
41+
dotnet publish src/DotNetApiDiff/DotNetApiDiff.csproj --configuration Release --output ./publish/osx-arm64 --runtime osx-arm64 --self-contained true -p:PublishSingleFile=true -p:Version=${GITHUB_REF#refs/tags/v}
42+
3743
- name: Create ZIP archives
3844
run: |
45+
# x64 archives
3946
cd ./publish/win-x64 && zip -r ../../dotnet-api-diff-win-x64.zip . && cd ../..
4047
cd ./publish/linux-x64 && tar -czf ../../dotnet-api-diff-linux-x64.tar.gz . && cd ../..
4148
cd ./publish/osx-x64 && tar -czf ../../dotnet-api-diff-osx-x64.tar.gz . && cd ../..
4249
50+
# ARM64 archives
51+
cd ./publish/win-arm64 && zip -r ../../dotnet-api-diff-win-arm64.zip . && cd ../..
52+
cd ./publish/linux-arm64 && tar -czf ../../dotnet-api-diff-linux-arm64.tar.gz . && cd ../..
53+
cd ./publish/osx-arm64 && tar -czf ../../dotnet-api-diff-osx-arm64.tar.gz . && cd ../..
54+
4355
- name: Create Release
4456
uses: softprops/action-gh-release@v1
4557
with:
4658
files: |
4759
dotnet-api-diff-win-x64.zip
4860
dotnet-api-diff-linux-x64.tar.gz
4961
dotnet-api-diff-osx-x64.tar.gz
62+
dotnet-api-diff-win-arm64.zip
63+
dotnet-api-diff-linux-arm64.tar.gz
64+
dotnet-api-diff-osx-arm64.tar.gz
5065
generate_release_notes: true

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,31 @@ task ci
8787

8888
### Installation
8989

90+
#### Quick Install (Linux/macOS)
91+
92+
```bash
93+
# Install latest version to user directory
94+
curl -fsSL https://raw.githubusercontent.com/jbrinkman/dotnet-api-diff/main/install.sh | bash
95+
96+
# Install specific version
97+
curl -fsSL https://raw.githubusercontent.com/jbrinkman/dotnet-api-diff/main/install.sh | bash -s -- v1.2.3
98+
99+
# Install system-wide (requires sudo)
100+
curl -fsSL https://raw.githubusercontent.com/jbrinkman/dotnet-api-diff/main/install.sh | sudo bash -s -- --system
101+
```
102+
103+
#### Manual Install
104+
105+
Download the latest release for your platform from [GitHub Releases](https://github.com/jbrinkman/dotnet-api-diff/releases):
106+
107+
- **Linux**: `dotnet-api-diff-linux-x64.tar.gz` or `dotnet-api-diff-linux-arm64.tar.gz`
108+
- **macOS**: `dotnet-api-diff-osx-x64.tar.gz` or `dotnet-api-diff-osx-arm64.tar.gz`
109+
- **Windows**: `dotnet-api-diff-win-x64.zip` or `dotnet-api-diff-win-arm64.zip`
110+
111+
Extract the archive and add the binary to your PATH.
112+
113+
#### Build from Source
114+
90115
```bash
91116
# Clone the repository
92117
git clone https://github.com/jbrinkman/dotnet-api-diff.git

0 commit comments

Comments
 (0)