name: Generate Artifacts on: push: tags: [ v* ] env: YAAK_PLUGINS_DIR: checkout/plugins jobs: build-artifacts: permissions: contents: write name: Build strategy: fail-fast: false matrix: include: - platform: 'macos-latest' # for Arm-based macs (M1 and above). args: '--target aarch64-apple-darwin' yaak_arch: 'arm64' - platform: 'macos-latest' # for Intel-based macs. args: '--target x86_64-apple-darwin' yaak_arch: 'x64' - platform: 'ubuntu-22.04' # for Tauri v1, you could replace this with ubuntu-20.04. args: '' yaak_arch: 'x64' - platform: 'windows-latest' args: '' yaak_arch: 'x64' runs-on: ${{ matrix.platform }} steps: - name: Checkout yaakapp/app uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 - uses: actions/setup-go@v5 with: go-version: '1.22' - name: install Rust stable uses: dtolnay/rust-toolchain@stable with: # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} - uses: actions/cache@v3 continue-on-error: false with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- - name: install dependencies (ubuntu only) if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above. run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf - name: Install Node dependencies run: | npm ci - name: Install plugin-runtime Node dependencies working-directory: plugin-runtime run: | npm ci - name: Install Protoc for plugin-runtime uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install yaak CLI run: go install github.com/yaakapp/yaakcli@latest - name: Run lint run: npm run lint - name: Checkout yaakapp/plugins uses: actions/checkout@v4 with: repository: yaakapp/plugins path: ${{ env.YAAK_PLUGINS_DIR }} - name: Set version run: npm run replace-version env: YAAK_VERSION: ${{ github.ref_name }} - uses: tauri-apps/tauri-action@v0 env: YAAK_PLUGINS_DIR: ${{ env.YAAK_PLUGINS_DIR }} YAAK_TARGET_ARCH: ${{ matrix.yaak_arch }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }} APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} with: tagName: 'v__VERSION__' releaseName: 'Release __VERSION__' releaseBody: 'https://yaak.app/blog/__VERSION__' releaseDraft: true prerelease: false args: ${{ matrix.args }}