└── .github └── workflows └── main.yml /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | on: 3 | workflow_dispatch: # manual trigger 4 | inputs: 5 | release_message: 6 | description: 'Message to show in the update dialog' 7 | type: string 8 | required: true 9 | default: 'See the assets to download this version and install' 10 | 11 | env: 12 | RELEASE_MESSAGE: ${{ inputs.release_message }} 13 | 14 | jobs: 15 | release: 16 | permissions: 17 | contents: write 18 | strategy: 19 | fail-fast: false 20 | matrix: 21 | platform: [macos-latest, ubuntu-20.04, windows-latest] 22 | runs-on: ${{ matrix.platform }} 23 | 24 | steps: 25 | - name: Checkout repository 26 | uses: actions/checkout@v3 27 | with: 28 | repository: 'Linen-dev/linen.dev' 29 | ref: 'main' 30 | 31 | - name: Install dependencies (ubuntu only) 32 | if: matrix.platform == 'ubuntu-20.04' 33 | # You can remove libayatana-appindicator3-dev if you don't use the system tray feature. 34 | run: | 35 | sudo apt-get update 36 | sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev 37 | 38 | - name: Rust setup 39 | uses: dtolnay/rust-toolchain@stable 40 | 41 | - name: Rust cache 42 | uses: swatinem/rust-cache@v2 43 | with: 44 | workspaces: './packages/spa/src-tauri -> target' 45 | 46 | - name: Sync node version and setup cache 47 | uses: actions/setup-node@v3 48 | with: 49 | node-version: 'lts/*' 50 | cache: 'yarn' # Set this to npm, yarn or pnpm. 51 | 52 | - name: Install frontend dependencies 53 | # If you don't have `beforeBuildCommand` configured you may want to build your frontend here too. 54 | run: | 55 | yarn config set network-timeout 300000 -g 56 | yarn install 57 | yarn build:deps 58 | 59 | - name: Build the app 60 | uses: tauri-apps/tauri-action@v0 61 | env: 62 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 63 | # updater 64 | TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} 65 | TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} 66 | # apple 67 | ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }} 68 | APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} 69 | APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} 70 | APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} 71 | APPLE_ID: ${{ secrets.APPLE_ID }} 72 | APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} 73 | # app specific 74 | REACT_APP_PUSH_SERVICE_URL: ${{ vars.REACT_APP_PUSH_SERVICE_URL }} 75 | REACT_APP_LINEN_BASE_URL: ${{ vars.REACT_APP_LINEN_BASE_URL }} 76 | REACT_APP_PUBLIC_POSTHOG_KEY: ${{ vars.REACT_APP_PUBLIC_POSTHOG_KEY }} 77 | REACT_APP_PUBLIC_POSTHOG_HOST: ${{ vars.REACT_APP_PUBLIC_POSTHOG_HOST }} 78 | with: 79 | tagName: 'v__VERSION__' 80 | releaseName: 'v__VERSION__' 81 | releaseBody: ${{ env.RELEASE_MESSAGE }} 82 | releaseDraft: false 83 | prerelease: false 84 | projectPath: './packages/spa' 85 | --------------------------------------------------------------------------------