Skip to content

fix: allow decimal values in FPS input fields #7

fix: allow decimal values in FPS input fields

fix: allow decimal values in FPS input fields #7

Workflow file for this run

name: Release
# Trigger the workflow when a new tag is created
# The tag should follow semantic versioning (e.g., v1.3.0, 1.4.0)
on:
push:
tags:
- 'v*'
- '*.*.*'
jobs:
build:
runs-on: ${{ matrix.os }}
# Permissions needed in case electron-builder tries to publish
permissions:
contents: read
# Build for multiple platforms in parallel
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
include:
- os: windows-latest
platform: win
- os: macos-latest
platform: mac
- os: ubuntu-latest
platform: linux
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
env:
# Disable automatic publishing by electron-builder
# We handle releases through the release job instead
PUBLISH: never
- name: Extract version from package.json
id: get_version
run: |
VERSION=$(node -p "require('./package.json').version")
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"
shell: bash
- name: Prepare release artifacts
shell: bash
run: |
# Create a directory for artifacts
mkdir -p release-artifacts
# Copy built files based on platform
if [ "${{ matrix.platform }}" == "win" ]; then
# Windows: Copy NSIS installer and related files
cp "dist/Frame Chopper Setup ${{ steps.get_version.outputs.version }}.exe" release-artifacts/ || true
cp "dist/latest.yml" release-artifacts/ || true
# Also copy the blockmap if it exists
cp "dist/"*.blockmap release-artifacts/ || true
elif [ "${{ matrix.platform }}" == "mac" ]; then
# macOS: Copy DMG file
cp "dist/"*.dmg release-artifacts/ || true
cp "dist/latest.yml" release-artifacts/ || true
elif [ "${{ matrix.platform }}" == "linux" ]; then
# Linux: Copy AppImage file
cp "dist/"*.AppImage release-artifacts/ || true
cp "dist/latest.yml" release-artifacts/ || true
fi
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}-build-${{ steps.get_version.outputs.version }}
path: release-artifacts/*
retention-days: 30
release:
needs: build
runs-on: ubuntu-latest
if: github.ref_type == 'tag'
# Permissions needed to create releases
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Extract version from package.json
id: get_version
run: |
VERSION=$(node -p "require('./package.json').version")
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"
- name: Download Windows build artifacts
uses: actions/download-artifact@v4
with:
name: win-build-${{ steps.get_version.outputs.version }}
path: ./release-artifacts/win
- name: Download macOS build artifacts
uses: actions/download-artifact@v4
with:
name: mac-build-${{ steps.get_version.outputs.version }}
path: ./release-artifacts/mac
continue-on-error: true
- name: Download Linux build artifacts
uses: actions/download-artifact@v4
with:
name: linux-build-${{ steps.get_version.outputs.version }}
path: ./release-artifacts/linux
continue-on-error: true
- name: List downloaded artifacts
shell: bash
run: |
echo "Windows artifacts:"
ls -la ./release-artifacts/win/ || echo "No Windows artifacts found"
echo ""
echo "macOS artifacts:"
ls -la ./release-artifacts/mac/ || echo "No macOS artifacts found"
echo ""
echo "Linux artifacts:"
ls -la ./release-artifacts/linux/ || echo "No Linux artifacts found"
- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.ref_name }}
name: Release ${{ steps.get_version.outputs.version }}
body: |
## Frame Chopper ${{ steps.get_version.outputs.version }}
### Changes
- See commit history for details
### Downloads
- Windows installer available in the assets below
- macOS installer available in the assets below (if built)
- Linux AppImage available in the assets below (if built)
### Installation
1. Download the installer for your platform
2. Run the installer and follow the on-screen instructions
3. Make sure FFmpeg is installed on your system before using the app
**Note**: FFmpeg must be installed separately. See the README for installation instructions.
files: |
release-artifacts/win/*
release-artifacts/mac/*
release-artifacts/linux/*
fail_on_unmatched_files: false
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}