Repository navigation
ci(one): hardcode empty signing password (no-password key) #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: one | |
| on: | |
| push: | |
| tags: | |
| - 'one-v*' | |
| workflow_dispatch: | |
| inputs: | |
| release: | |
| description: 'Create a draft GitHub release with the artifacts' | |
| type: boolean | |
| default: false | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: macOS (arm64) | |
| os: macos-14 | |
| target: aarch64-apple-darwin | |
| bundle-dir: macos | |
| - label: macOS (x64) | |
| os: macos-13 | |
| target: x86_64-apple-darwin | |
| bundle-dir: macos | |
| - label: Windows (x64) | |
| os: windows-2022 | |
| target: x86_64-pc-windows-msvc | |
| bundle-dir: nsis | |
| - label: Linux (x64) | |
| os: ubuntu-22.04 | |
| target: x86_64-unknown-linux-gnu | |
| bundle-dir: deb | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Linux build deps | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libwebkit2gtk-4.1-dev libssl-dev libayatana-appindicator3-dev \ | |
| librsvg2-dev patchelf libgtk-3-dev libsoup-3.0-dev | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.28.2 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.target }} | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: apps/objectos-one/src-tauri | |
| - name: Install workspace deps | |
| run: pnpm install --frozen-lockfile | |
| - name: Stage Node runtime | |
| run: pnpm --filter @objectos/one stage | |
| - name: Build Tauri bundle | |
| env: | |
| # macOS signing (provide via repo secrets to enable notarization). | |
| 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_PASSWORD: ${{ secrets.APPLE_PASSWORD }} | |
| APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
| # Tauri updater key (optional). | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: "" | |
| run: pnpm --filter @objectos/one tauri build --target ${{ matrix.target }} | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: objectos-one-${{ matrix.target }} | |
| path: | | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.dmg | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.app | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.exe | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.msi | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.deb | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.AppImage | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.tar.gz | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.zip | |
| apps/objectos-one/src-tauri/target/${{ matrix.target }}/release/bundle/**/*.sig | |
| if-no-files-found: warn | |
| release: | |
| name: Draft release | |
| needs: build | |
| if: startsWith(github.ref, 'refs/tags/one-v') || inputs.release | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: Generate latest.json (updater manifest) | |
| env: | |
| TAG: ${{ github.ref_name }} | |
| run: node .github/scripts/build-update-manifest.mjs artifacts "$TAG" > artifacts/latest.json | |
| - name: Create draft release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| draft: true | |
| generate_release_notes: true | |
| name: ObjectOS One ${{ github.ref_name }} | |
| files: | | |
| artifacts/**/*.dmg | |
| artifacts/**/*.exe | |
| artifacts/**/*.msi | |
| artifacts/**/*.deb | |
| artifacts/**/*.AppImage | |
| artifacts/**/*.tar.gz | |
| artifacts/**/*.zip | |
| artifacts/**/*.sig | |
| artifacts/latest.json |