Skip to content

chore(m41): close phase 6 release ledger #4

chore(m41): close phase 6 release ledger

chore(m41): close phase 6 release ledger #4

Workflow file for this run

name: Release
# Triggered by pushing a version tag (e.g. v1.0.0).
# Builds installers for Windows, macOS, and Linux, generates SHA256
# checksums, and uploads everything to a GitHub Release draft.
on:
push:
tags:
- 'v*'
permissions:
contents: write
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build ${{ matrix.os }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
platform: win
- os: macos-latest
platform: mac
- os: ubuntu-latest
platform: linux
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
# Linux: Electron runtime libraries for headless build
- name: Install Electron runtime libraries (Linux)
if: matrix.platform == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libpango-1.0-0 \
libcairo2 \
libasound2t64 \
libgtk-3-0
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint + Typecheck + Test
run: |
pnpm lint
pnpm typecheck
pnpm test
- name: Build + Package (${{ matrix.platform }})
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: pnpm -F @team-x/desktop dist:${{ matrix.platform }}
- name: Generate SHA256 checksums
shell: bash
run: |
cd release/*/
for f in *.exe *.dmg *.AppImage *.deb *.blockmap *.yml 2>/dev/null; do
[ -f "$f" ] && sha256sum "$f" >> SHA256SUMS.txt
done
cat SHA256SUMS.txt 2>/dev/null || echo "No artifacts found"
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: release-${{ matrix.platform }}
path: |
release/**/*.exe
release/**/*.dmg
release/**/*.AppImage
release/**/*.deb
release/**/*.blockmap
release/**/*.yml
release/**/SHA256SUMS.txt
retention-days: 7
publish:
name: Create GitHub Release
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true
- name: Create Release
uses: softprops/action-gh-release@v2
with:
draft: true
generate_release_notes: true
files: |
artifacts/**/*.exe
artifacts/**/*.dmg
artifacts/**/*.AppImage
artifacts/**/*.deb
artifacts/**/SHA256SUMS.txt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}