feat(workspace): add worktree-based isolated development functionality #397
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: Tests | |
| on: | |
| push: | |
| branches: | |
| - master | |
| paths: | |
| - "crates/*/Cargo.toml" | |
| - "src/**" | |
| - "python/**" | |
| - "packages/*/python/**" | |
| - "packages/*/src/**" | |
| - "**/pyproject.toml" | |
| - "**/cargo.toml" | |
| pull_request: | |
| branches: | |
| - master | |
| paths: | |
| - "crates/*/Cargo.toml" | |
| - "src/**" | |
| - "python/**" | |
| - "packages/*/python/**" | |
| - "packages/*/src/**" | |
| - "**/pyproject.toml" | |
| - "**/cargo.toml" | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ windows-latest, ubuntu-latest, ubuntu-24.04-arm, macos-latest ] | |
| python-version: [ "3.14" ] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - uses: extractions/setup-just@v3 | |
| with: | |
| github-token: ${{ secrets.PAT }} | |
| - name: Install the latest version of uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "latest" | |
| - name: Install nightly rust | |
| run: | | |
| rustup default nightly | |
| - name: Install Protoc | |
| uses: arduino/setup-protoc@v3 | |
| with: | |
| repo-token: ${{ secrets.PAT }} | |
| - uses: actions/setup-node@v6 | |
| name: Setup Node.js | |
| continue-on-error: true | |
| with: | |
| node-version: 22 | |
| cache: 'pnpm' | |
| cache-dependency-path: 'packages/fabricatio-webui/frontend/pnpm-lock.yaml' | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Cache cargo registry | |
| id: cache-registry | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| key: ${{ runner.os }}-cargo-registry-v1 | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-registry- | |
| - name: Setup Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install deps | |
| run: | | |
| uv sync --no-install-project --only-dev --index https://pypi.org/simple -p ${{ matrix.python-version }} | |
| - name: Compile extensions | |
| run: | | |
| just dev ${{ matrix.python-version }} | |
| - name: Test | |
| run: | | |
| just test | |
| shell: bash | |
| - name: Upload coverage to Codecov | |
| if: github.event_name != 'pull_request' | |
| continue-on-error: true | |
| run: | | |
| uv run coveralls | |
| env: | |
| COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |