Skip to content

chore: update app version to 1.11.0 in Cargo.lock #27

chore: update app version to 1.11.0 in Cargo.lock

chore: update app version to 1.11.0 in Cargo.lock #27

Workflow file for this run

name: Release Build
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
version:
description: 'Version tag (e.g. v1.2.0)'
required: true
permissions:
contents: write
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.version || github.ref }}
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Tauri CLI
run: cargo install tauri-cli --version "^2"
- name: Verify version sync
run: node scripts/sync-versions.mjs --check
- name: Build Tauri (Linux)
run: cargo-tauri build --bundles appimage,deb
env:
CI: true
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: linux-builds
path: |
src-tauri/target/release/bundle/appimage/*.AppImage
src-tauri/target/release/bundle/deb/*.deb
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.version || github.ref }}
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Tauri CLI
run: cargo install tauri-cli --version "^2"
- name: Verify version sync
run: node scripts/sync-versions.mjs --check
- name: Build Tauri (macOS)
run: cargo-tauri build --bundles dmg
env:
CI: true
- name: Sign and notarize (if credentials available)
if: env.APPLE_CERTIFICATE != ''
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
run: |
echo "Signing credentials found — signing will be handled by Tauri bundle config"
- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: macos-builds
path: |
src-tauri/target/release/bundle/dmg/*.dmg
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.version || github.ref }}
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Tauri CLI
run: cargo install tauri-cli --version "^2"
- name: Verify version sync
run: node scripts/sync-versions.mjs --check
- name: Build Tauri (Windows)
run: cargo-tauri build --bundles msi,nsis
env:
CI: 'true'
- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: windows-builds
path: |
src-tauri/target/release/bundle/msi/*.msi
src-tauri/target/release/bundle/nsis/*.exe
publish-release:
runs-on: ubuntu-latest
needs:
- build-linux
- build-macos
- build-windows
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
steps:
- name: Download bundled artifacts
uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true
- name: Flatten and rename release assets
run: |
mkdir -p release-assets
find dist -type f \( -name "*.AppImage" -o -name "*.deb" -o -name "*.dmg" -o -name "*.exe" -o -name "*.msi" \) -exec cp {} release-assets/ \;
echo "Release assets:"
ls -lh release-assets/
- name: Generate checksums
working-directory: release-assets
run: |
sha256sum * > SHA256SUMS.txt
echo "Checksums:"
cat SHA256SUMS.txt
- name: Publish GitHub release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.version || github.ref_name }}
name: KnotCode ${{ github.event.inputs.version || github.ref_name }}
body: |
## KnotCode ${{ github.event.inputs.version || github.ref_name }}
### Downloads
| Platform | File |
|----------|------|
| macOS | `.dmg` |
| Windows | `.msi` or `.exe` (NSIS) |
| Linux | `.AppImage` or `.deb` |
See [CHANGELOG.md](https://github.com/OpenKnots/code-editor/blob/main/CHANGELOG.md) for details.
**Verify downloads** with the `SHA256SUMS.txt` file attached to this release.
files: release-assets/*
fail_on_unmatched_files: true