CI build versions
This commit is contained in:
36
.github/workflows/ci.yml
vendored
36
.github/workflows/ci.yml
vendored
@@ -58,16 +58,20 @@ jobs:
|
|||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y build-essential cmake pkg-config libasound2-dev libclang-dev libjack-dev \
|
sudo apt-get install -y build-essential cmake pkg-config libasound2-dev libclang-dev libjack-dev \
|
||||||
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libgl1-mesa-dev
|
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libgl1-mesa-dev
|
||||||
|
cargo install cargo-bundle
|
||||||
|
|
||||||
- name: Install dependencies (macOS)
|
- name: Install dependencies (macOS)
|
||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
run: brew list cmake &>/dev/null || brew install cmake
|
run: |
|
||||||
|
brew list cmake &>/dev/null || brew install cmake
|
||||||
|
cargo install cargo-bundle
|
||||||
|
|
||||||
- name: Install dependencies (Windows)
|
- name: Install dependencies (Windows)
|
||||||
if: runner.os == 'Windows'
|
if: runner.os == 'Windows'
|
||||||
run: |
|
run: |
|
||||||
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'
|
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'
|
||||||
echo "C:\Program Files\CMake\bin" >> $env:GITHUB_PATH
|
echo "C:\Program Files\CMake\bin" >> $env:GITHUB_PATH
|
||||||
|
cargo install cargo-bundle
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cargo build --release --target ${{ matrix.target }}
|
run: cargo build --release --target ${{ matrix.target }}
|
||||||
@@ -75,6 +79,9 @@ jobs:
|
|||||||
- name: Build desktop
|
- name: Build desktop
|
||||||
run: cargo build --release --features desktop --bin cagire-desktop --target ${{ matrix.target }}
|
run: cargo build --release --features desktop --bin cagire-desktop --target ${{ matrix.target }}
|
||||||
|
|
||||||
|
- name: Bundle desktop app
|
||||||
|
run: cargo bundle --release --features desktop --bin cagire-desktop --target ${{ matrix.target }}
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: cargo test --target ${{ matrix.target }}
|
run: cargo test --target ${{ matrix.target }}
|
||||||
|
|
||||||
@@ -95,19 +102,26 @@ jobs:
|
|||||||
name: ${{ matrix.artifact }}
|
name: ${{ matrix.artifact }}
|
||||||
path: target/${{ matrix.target }}/release/cagire.exe
|
path: target/${{ matrix.target }}/release/cagire.exe
|
||||||
|
|
||||||
- name: Upload desktop artifact (Unix)
|
- name: Upload desktop artifact (Linux deb)
|
||||||
if: runner.os != 'Windows'
|
if: runner.os == 'Linux'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.artifact }}-desktop
|
name: ${{ matrix.artifact }}-desktop
|
||||||
path: target/${{ matrix.target }}/release/cagire-desktop
|
path: target/${{ matrix.target }}/release/bundle/deb/*.deb
|
||||||
|
|
||||||
- name: Upload desktop artifact (Windows)
|
- name: Upload desktop artifact (macOS app bundle)
|
||||||
|
if: runner.os == 'macOS'
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.artifact }}-desktop
|
||||||
|
path: target/${{ matrix.target }}/release/bundle/osx/Cagire.app
|
||||||
|
|
||||||
|
- name: Upload desktop artifact (Windows MSI)
|
||||||
if: runner.os == 'Windows'
|
if: runner.os == 'Windows'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.artifact }}-desktop
|
name: ${{ matrix.artifact }}-desktop
|
||||||
path: target/${{ matrix.target }}/release/cagire-desktop.exe
|
path: target/${{ matrix.target }}/release/bundle/msi/*.msi
|
||||||
|
|
||||||
release:
|
release:
|
||||||
needs: build
|
needs: build
|
||||||
@@ -130,10 +144,12 @@ jobs:
|
|||||||
name=$(basename "$dir")
|
name=$(basename "$dir")
|
||||||
if [[ "$name" == *-desktop ]]; then
|
if [[ "$name" == *-desktop ]]; then
|
||||||
base="${name%-desktop}"
|
base="${name%-desktop}"
|
||||||
if [ -f "$dir/cagire-desktop.exe" ]; then
|
if ls "$dir"/*.msi 1>/dev/null 2>&1; then
|
||||||
cp "$dir/cagire-desktop.exe" "release/${base}-desktop.exe"
|
cp "$dir"/*.msi "release/${base}-desktop.msi"
|
||||||
elif [ -f "$dir/cagire-desktop" ]; then
|
elif ls "$dir"/*.deb 1>/dev/null 2>&1; then
|
||||||
cp "$dir/cagire-desktop" "release/${base}-desktop"
|
cp "$dir"/*.deb "release/${base}-desktop.deb"
|
||||||
|
elif [ -d "$dir/Cagire.app" ]; then
|
||||||
|
(cd "$dir" && zip -r "../../release/${base}-desktop.app.zip" Cagire.app)
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ -f "$dir/cagire.exe" ]; then
|
if [ -f "$dir/cagire.exe" ]; then
|
||||||
|
|||||||
@@ -65,3 +65,12 @@ lto = "fat"
|
|||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
panic = "abort"
|
panic = "abort"
|
||||||
strip = true
|
strip = true
|
||||||
|
|
||||||
|
[package.metadata.bundle.bin.cagire-desktop]
|
||||||
|
name = "Cagire"
|
||||||
|
identifier = "com.sova.cagire"
|
||||||
|
icon = ["assets/Cagire.icns", "assets/Cagire.ico"]
|
||||||
|
version = "0.1.0"
|
||||||
|
copyright = "Copyright (c) 2025 Cagire Contributors"
|
||||||
|
category = "Music"
|
||||||
|
short_description = "Forth-based music sequencer with Ableton Link"
|
||||||
|
|||||||
BIN
assets/Cagire.icns
Normal file
BIN
assets/Cagire.icns
Normal file
Binary file not shown.
BIN
assets/Cagire.ico
Normal file
BIN
assets/Cagire.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 137 KiB |
Reference in New Issue
Block a user