Skip to content

Release

Release #21

Workflow file for this run

name: release
on:
push:
tags:
- 'v*'
permissions:
contents: write
packages: write
jobs:
build-release:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libjavascriptcoregtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libfuse2
- name: Install dependencies
run: pnpm install
- name: Generate Prisma client
run: pnpm --filter @openlinear/db db:generate
- name: Build sidecar
run: pnpm build:sidecar
- name: Build desktop
run: pnpm build:desktop
- name: Strip bundled Wayland libs from AppImage
run: |
set -euo pipefail
APPIMAGE=$(ls apps/desktop/src-tauri/target/release/bundle/appimage/*.AppImage | head -n 1)
chmod +x "$APPIMAGE"
"$APPIMAGE" --appimage-extract
rm -f squashfs-root/usr/lib/libwayland-client.so*
rm -f squashfs-root/usr/lib/libwayland-egl.so*
rm -f squashfs-root/usr/lib/libwayland-cursor.so*
wget -q "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage" -O appimagetool
chmod +x appimagetool
ARCH=x86_64 ./appimagetool --appimage-extract-and-run squashfs-root "$APPIMAGE"
- name: Prepare release artifacts
run: |
set -euo pipefail
VERSION=${GITHUB_REF_NAME#v}
APPIMAGE=$(ls apps/desktop/src-tauri/target/release/bundle/appimage/*.AppImage | head -n 1)
DEB=$(ls apps/desktop/src-tauri/target/release/bundle/deb/*.deb | head -n 1)
mkdir -p dist/release
cp "$APPIMAGE" "dist/release/openlinear-${VERSION}-x86_64.AppImage"
cp "$DEB" "dist/release/openlinear-${VERSION}-x86_64.deb"
cp apps/api/dist/api-linux-x64 "dist/release/openlinear-api-${VERSION}-x86_64"
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
files: dist/release/*