# Copyright 2019-2024 Tauri Programme within The Commons Conservancy # SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: MIT name: covector version or publish on: push: branches: - dev permissions: contents: read jobs: run-integration-tests: runs-on: ${{ matrix.platform }} env: CARGO_PROFILE_DEV_DEBUG: 0 # no debuginfo: faster builds and a much smaller target dir strategy: fail-fast: false matrix: platform: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v7 with: fetch-depth: 0 - run: npm i -g --force corepack - uses: actions/setup-node@v7 with: cache: 'pnpm' - name: install stable uses: dtolnay/rust-toolchain@stable - name: install Linux dependencies if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev libfuse2 librsvg2-dev # No rust-cache on purpose: this job only runs on `dev`, its target dir does not fit the # repository's 10 GB cache limit next to the entries pull requests restore, and an entry # evicted before the next push only costs upload time. - name: build CLI run: cargo build --manifest-path ./crates/tauri-cli/Cargo.toml - name: run integration tests run: cargo test --test '*' -- --ignored - name: run CLI tests timeout-minutes: 30 run: | cd ./packages/cli pnpm i --frozen-lockfile pnpm build pnpm test version-or-publish: runs-on: ubuntu-latest timeout-minutes: 65 permissions: actions: write # required for workflow_dispatch contents: write # required to create new releases pull-requests: write # required to open version update pr id-token: write # pnpm provenance / oidc token outputs: change: ${{ steps.covector.outputs.change }} commandRan: ${{ steps.covector.outputs.commandRan }} successfulPublish: ${{ steps.covector.outputs.successfulPublish }} needs: - run-integration-tests steps: - uses: actions/checkout@v7 with: fetch-depth: 0 - run: npm i -g --force corepack - uses: actions/setup-node@v7 with: node-version: 24 - name: cargo login run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }} - name: git config run: | git config --global user.name "${{ github.event.pusher.name }}" git config --global user.email "${{ github.event.pusher.email }}" - name: install Linux dependencies run: | sudo apt-get update sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev librsvg2-dev - name: covector version or publish (publish when no change files present) uses: jbolda/covector/packages/action@covector-v0 id: covector env: CARGO_AUDIT_OPTIONS: ${{ secrets.CARGO_AUDIT_OPTIONS }} NPM_CONFIG_PROVENANCE: true with: command: 'version-or-publish' token: ${{ secrets.GITHUB_TOKEN }} createRelease: true recognizeContributors: true - name: Sync Cargo.lock if: steps.covector.outputs.commandRan == 'version' run: cargo tree --depth 0 - name: Create Pull Request With Versions Bumped if: steps.covector.outputs.commandRan == 'version' uses: peter-evans/create-pull-request@v8.1.1 with: token: ${{ secrets.GITHUB_TOKEN }} branch: release/version-updates title: Apply Version Updates From Current Changes commit-message: 'apply version updates' labels: 'version updates' body: ${{ steps.covector.outputs.change }} sign-commits: true - name: Trigger doc update if: | steps.covector.outputs.successfulPublish == 'true' && steps.covector.outputs.packagesPublished != '' uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # 3.0.0 with: token: ${{ secrets.ORG_TAURI_BOT_PAT }} repository: tauri-apps/tauri-docs event-type: update-docs - name: Trigger `@tauri-apps/cli` publishing workflow if: | steps.covector.outputs.successfulPublish == 'true' && contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli') run: gh workflow run 31554138 -r dev -f releaseId=${{ steps.covector.outputs['-tauri-apps-cli-releaseId'] }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Trigger `tauri-cli` publishing workflow if: | steps.covector.outputs.successfulPublish == 'true' && contains(steps.covector.outputs.packagesPublished, 'tauri-cli') run: gh workflow run 31554139 -r dev env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}