summaryrefslogtreecommitdiff
path: root/.github/workflows/release.yml
blob: 0469fc3a8d9e220df95cc1579b2b16cd2b55ffcf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
name: Release

on:
  push:
    tags:
      - "v*"

permissions:
  contents: write

jobs:
  build:
    runs-on: ubuntu-latest

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

      - name: Install Bun
        uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76
        with:
          bun-version: 1.2.18

      - name: Cache Bun modules
        uses: actions/cache@v4
        with:
          path: ~/.bun/install/cache
          key: ${{ runner.os }}-bun-1.2.18-${{ hashFiles('bun.lock') }}

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Build web app (static export)
        run: bun build:web

      - name: Package static web bundle
        working-directory: apps/web
        run: tar -czf ../../opencut-web-static.tar.gz -C out .

      - name: Copy web bundle into desktop app
        working-directory: apps/desktop
        run: bun run copy:web

      - name: Build desktop packages (AppImage, deb, rpm)
        working-directory: apps/desktop
        run: bun run dist

      - name: Upload release assets
        uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true
          files: |
            opencut-web-static.tar.gz
            apps/desktop/release/OpenCut-*-linux-*.AppImage
            apps/desktop/release/OpenCut-*-linux-*.deb
            apps/desktop/release/OpenCut-*-linux-*.rpm