Skip to content
This repository was archived by the owner on Jul 5, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
41d5f98
feat: auto-normalize amplitudes over 100%; add -N option to disable n…
ruanklein Jun 1, 2025
6825c8a
chore: bump version to 1.5.5
ruanklein Jun 1, 2025
c8d2a6c
feat: global volume option added
ruanklein Jun 1, 2025
be65aa4
feat: global waveform option added
ruanklein Jun 2, 2025
db8fcdb
fix: moved init_sin_table after readSeq to fix -w option in sbg file
ruanklein Jun 2, 2025
5a26273
doc: updated with new options
ruanklein Jun 2, 2025
91975cb
feat: individual waveform types for binaural, isochronic, bells, spin…
ruanklein Jun 3, 2025
dae0ac9
doc: updated
ruanklein Jun 3, 2025
bad6747
ci: development workflow for publish dev versions
ruanklein Jun 3, 2025
9ffb5bb
ci: permissions
ruanklein Jun 3, 2025
0357d24
doc: SBAGEN+.txt updated
ruanklein Jun 6, 2025
4c0e565
chore: icons updated
ruanklein Jun 6, 2025
bc62a5f
chore: dynamic version assignment
ruanklein Jun 6, 2025
ff8c4c3
chore: ignore tmp source files
ruanklein Jun 6, 2025
1272526
chore: option added to include sbagen+ in Windows PATH
ruanklein Jun 6, 2025
20a9845
chore: new icon and new background in dmg
ruanklein Jun 6, 2025
6a9236c
chore: macos auto build added
ruanklein Jun 6, 2025
e09c156
chore: optional path config
ruanklein Jun 6, 2025
751ac05
fix: windows version in rc file
ruanklein Jun 6, 2025
376e6d7
fix: xvfb
ruanklein Jun 6, 2025
50dfc3b
ci: manual dispatch
ruanklein Jun 6, 2025
5b959be
ci: production workflow
ruanklein Jun 6, 2025
c152dff
chore: adjust syntax to support CI/CD parsing
ruanklein Jun 6, 2025
2cd6450
chore: fix typo
ruanklein Jun 6, 2025
f2e79f4
fix: resolve linker alignment warning by using dynamic buffer allocation
ruanklein Jun 6, 2025
86a74dc
chore: intensity error message changes
ruanklein Jun 6, 2025
a54c098
chore: ChangeLog
ruanklein Jun 6, 2025
b335b8c
ci: dispatch changes
ruanklein Jun 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
194 changes: 194 additions & 0 deletions .github/workflows/development-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
name: Development Release

on: workflow_dispatch

permissions:
contents: write
actions: read
packages: write

jobs:
build-linux-windows:
runs-on: ubuntu-latest

outputs:
version: ${{ steps.version.outputs.version }}

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Generate development version
id: version
run: |
BASE_VERSION=$(cat VERSION | tr -d '\n')
DATE=$(date +'%Y%m%d')
SHORT_SHA=${GITHUB_SHA::7}
DEV_VERSION="${BASE_VERSION}-dev.${DATE}.${SHORT_SHA}"

echo "version=${DEV_VERSION}" >> $GITHUB_OUTPUT
echo "base_version=${BASE_VERSION}" >> $GITHUB_OUTPUT
echo "Generated version: ${DEV_VERSION}"
echo $DEV_VERSION > VERSION

- name: Build for Linux and Windows
run: |
mkdir -p artifacts

# Run build using docker compose
docker compose run --rm build

# Copy generated artifacts
if [ -f "dist/sbagen+-linux64" ]; then
cp dist/sbagen+-linux64 artifacts/sbagen+-linux64
fi

if [ -f "dist/sbagen+-linux32" ]; then
cp dist/sbagen+-linux32 artifacts/sbagen+-linux32
fi

if [ -f "dist/sbagen+-windows-setup.exe" ]; then
cp dist/sbagen+-windows-setup.exe artifacts/sbagen+-windows-setup.exe
fi

- name: Generate SHA256 checksums
run: |
cd artifacts
find . -type f -exec sha256sum {} \; | sort > ../checksums.txt
cat ../checksums.txt

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: sbagen-plus-${{ steps.version.outputs.version }}
path: |
artifacts/
checksums.txt
retention-days: 30

build-macos:
runs-on: macos-latest

outputs:
version: ${{ steps.version.outputs.version }}

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install dependencies
run: |
# Install required tools via Homebrew
brew install automake autoconf libtool pandoc create-dmg

- name: Generate development version
id: version
run: |
BASE_VERSION=$(cat VERSION | tr -d '\n')
DATE=$(date +'%Y%m%d')
SHORT_SHA=${GITHUB_SHA::7}
DEV_VERSION="${BASE_VERSION}-dev.${DATE}.${SHORT_SHA}"

echo "version=${DEV_VERSION}" >> $GITHUB_OUTPUT
echo "Generated version: ${DEV_VERSION}"
echo $DEV_VERSION > VERSION

- name: Build libraries for macOS
run: |
./macos-build-libs.sh

- name: Build SBaGen+ for macOS
run: |
./macos-build-sbagen+.sh

- name: Create macOS installer
run: |
./macos-create-installer.sh

- name: Prepare artifacts
run: |
mkdir -p artifacts

# Copy DMG installer
if [ -f "dist/SBaGen+-Installer.dmg" ]; then
cp dist/SBaGen+-Installer.dmg artifacts/SBaGen+-Installer.dmg
fi

- name: Generate SHA256 checksums
run: |
cd artifacts
find . -type f -exec shasum -a 256 {} \; | sort > ../checksums-macos.txt
cat ../checksums-macos.txt

- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: sbagen-plus-macos-${{ steps.version.outputs.version }}
path: |
artifacts/
checksums-macos.txt
retention-days: 30

create-release:
needs: [build-linux-windows, build-macos]
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Download Linux/Windows artifacts
uses: actions/download-artifact@v4
with:
name: sbagen-plus-${{ needs.build-linux-windows.outputs.version }}
path: linux-windows/

- name: Download macOS artifacts
uses: actions/download-artifact@v4
with:
name: sbagen-plus-macos-${{ needs.build-macos.outputs.version }}
path: macos/

- name: Combine artifacts
run: |
mkdir -p all-artifacts

# Copy Linux/Windows artifacts
if [ -d "linux-windows/artifacts" ]; then
cp linux-windows/artifacts/* all-artifacts/ 2>/dev/null || true
fi

# Copy macOS artifacts
if [ -d "macos/artifacts" ]; then
cp macos/artifacts/* all-artifacts/ 2>/dev/null || true
fi

# Merge checksums
if [ -f "macos/checksums-macos.txt" ]; then
cat macos/checksums-macos.txt >> all-artifacts/checksums.txt
rm -f macos/checksums-macos.txt
fi

- name: Generate release body with checksums
run: |
echo "**This is a development version and may contain bugs or unstable features.**" > release_body.md

- name: Create Development Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.build-linux-windows.outputs.version }}
name: "Development Release v${{ needs.build-linux-windows.outputs.version }}"
body_path: release_body.md
files: |
all-artifacts/*
prerelease: true
draft: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading