fix(query): resolve binders in package type dumps (#2662) #3033
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: tinymist::ci | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - nightly | |
| - stable/** | |
| tags: | |
| - "*" | |
| pull_request: | |
| types: [opened, synchronize] | |
| branches: | |
| - main | |
| - nightly | |
| - stable/** | |
| workflow_dispatch: | |
| env: | |
| RUSTFLAGS: '-Dwarnings' | |
| CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc | |
| CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc | |
| jobs: | |
| pre_build: | |
| permissions: | |
| actions: write | |
| contents: read | |
| name: Duplicate Actions Detection | |
| runs-on: ubuntu-latest | |
| outputs: | |
| should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
| steps: | |
| - id: skip_check | |
| uses: fkirc/skip-duplicate-actions@v5 | |
| with: | |
| cancel_others: "true" | |
| checks-linux: | |
| name: Check Clippy, Formatting, Completion, Documentation, and Tests (Linux) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Checkout Typst renderer suite | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: typst/typst | |
| ref: v0.15.0 | |
| path: typst-upstream | |
| - uses: typst-community/setup-typst@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| components: clippy, rustfmt | |
| cache-shared-key: x86_64-unknown-linux-gnu | |
| cache-save-if: false | |
| - name: Install Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24 | |
| cache: 'yarn' | |
| - name: Install system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libfontconfig1-dev libvulkan1 mesa-vulkan-drivers vulkan-tools | |
| - name: Check Vulkan software renderer | |
| run: | | |
| ls -l /usr/share/vulkan/icd.d | |
| vulkaninfo --summary || true | |
| env: | |
| VK_DRIVER_FILES: /usr/share/vulkan/icd.d/lvp_icd.json | |
| VK_ICD_FILENAMES: /usr/share/vulkan/icd.d/lvp_icd.json | |
| - name: Install deps | |
| run: yarn install | |
| - name: Check and build assets | |
| run: | | |
| yarn build:preview | |
| yarn build:l10n | |
| - run: cargo clippy --workspace --all-targets --locked | |
| - run: scripts/feature-testing.sh | |
| - run: cargo fmt --check --all | |
| - run: cargo doc --workspace --no-deps | |
| - run: yarn build:typlite | |
| - run: node ./scripts/link-docs.mjs --check | |
| - name: Generate completions | |
| run: | | |
| mkdir -p completions/{zsh,bash,fish/vendor_completions.d,elvish/lib,nushell/vendor/autoload,powershell}/ | |
| cargo run --bin tinymist -- completion zsh > completions/zsh/_tinymist | |
| cargo run --bin tinymist -- completion bash > completions/bash/tinymist | |
| cargo run --bin tinymist -- completion fish > completions/fish/vendor_completions.d/tinymist.fish | |
| cargo run --bin tinymist -- completion elvish > completions/elvish/lib/tinymist.elv | |
| cargo run --bin tinymist -- completion nushell > completions/nushell/vendor/autoload/tinymist.nu | |
| cargo run --bin tinymist -- completion powershell > completions/powershell/tinymist.ps1 | |
| tar -czvf tinymist-completions.tar.gz completions | |
| - name: upload completions | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: tinymist-completion-scripts | |
| path: tinymist-completions.tar.gz | |
| - name: Build Vello renderer diff bundle | |
| run: cargo test -p tinymist-viewer --test vello_renderer_suite --locked -- --nocapture | |
| env: | |
| TINYMIST_TYPST_TESTS: ${{ github.workspace }}/typst-upstream/tests | |
| TINYMIST_TYPST_REF: "typst/typst@v0.15.0" | |
| TINYMIST_RENDERER_DIFF: "1" | |
| WGPU_BACKEND: vulkan | |
| VK_DRIVER_FILES: /usr/share/vulkan/icd.d/lvp_icd.json | |
| VK_ICD_FILENAMES: /usr/share/vulkan/icd.d/lvp_icd.json | |
| - name: Upload Vello renderer diff bundle | |
| id: upload_renderer_diff | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: renderer-diff-vello | |
| path: target/tinymist-viewer/vello-renderer/renderer-diff-vello | |
| if-no-files-found: ignore | |
| retention-days: 14 | |
| - name: Show renderer diff viewer link | |
| if: always() | |
| run: | | |
| artifact_id="${{ steps.upload_renderer_diff.outputs.artifact-id }}" | |
| page_url="https://myriad-dreamin.github.io/tinymist/renderer-diff/?owner=${{ github.repository_owner }}&repo=${{ github.event.repository.name }}&run=${{ github.run_id }}" | |
| if [ -n "${artifact_id}" ]; then | |
| page_url="${page_url}&artifact=${artifact_id}" | |
| fi | |
| echo "Renderer diff viewer: ${page_url}" | |
| { | |
| echo "### Renderer diff viewer" | |
| echo "" | |
| echo "[Open renderer diff viewer](${page_url})" | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| - name: Test tinymist | |
| run: cargo test --workspace --features tinymist/system --locked -- --skip=e2e | |
| env: | |
| WGPU_BACKEND: vulkan | |
| VK_DRIVER_FILES: /usr/share/vulkan/icd.d/lvp_icd.json | |
| VK_ICD_FILENAMES: /usr/share/vulkan/icd.d/lvp_icd.json | |
| - name: Test real filesystem watcher | |
| run: cargo test -p tinymist-project -p tinymist --features tinymist-project/system,tinymist-project/mock,tinymist/system --locked real_fs_ -- --ignored | |
| - name: Test Lockfile (Prepare) | |
| run: ./scripts/test-lock.sh | |
| - name: Test Lockfile (Check) | |
| run: cargo test --package tinymist --lib --locked -- route::tests --show-output --ignored | |
| checks-windows: | |
| name: Check Minimum Rust version and Tests (Windows) | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: 1.92.0 # check-min-version | |
| cache-shared-key: x86_64-pc-windows-msvc | |
| cache-save-if: false | |
| - name: Install Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24 | |
| - name: Install deps | |
| run: yarn install | |
| - name: Check Rust Version | |
| run: yarn check-msrv | |
| - name: Check and build assets | |
| run: | | |
| yarn build:preview | |
| yarn build:l10n | |
| - run: cargo check --workspace --locked | |
| - name: Test tinymist | |
| run: cargo test --workspace --features tinymist/system --locked -- --skip=e2e | |
| prepare-build: | |
| runs-on: "ubuntu-latest" | |
| outputs: | |
| tag: ${{ steps.tag.outputs.tag }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - id: tag # get the tag from package.json | |
| run: | |
| echo "tag=v$(jq -r '.version' editors/vscode/package.json)" >> $GITHUB_OUTPUT | |
| - name: Show tag | |
| run: echo "Tag is ${{ steps.tag.outputs.tag }}" | |
| announce: | |
| needs: [prepare-build] | |
| permissions: | |
| contents: write | |
| uses: ./.github/workflows/announce.yml | |
| if: ${{ startsWith(github.ref, 'refs/tags/') }} | |
| secrets: inherit | |
| with: | |
| tag: ${{ needs.prepare-build.outputs.tag }} | |
| build: | |
| needs: [prepare-build] # , announce | |
| permissions: | |
| contents: write | |
| uses: ./.github/workflows/release.yml | |
| secrets: inherit | |
| with: | |
| tag: ${{ (startsWith(github.ref, 'refs/tags/') && needs.prepare-build.outputs.tag) || '' }} | |
| targets: ${{ (!startsWith(github.ref, 'refs/tags/') && 'aarch64-apple-darwin,x86_64-pc-windows-msvc,x86_64-unknown-linux-gnu') || 'all' }} | |
| build-intellij: | |
| uses: ./.github/workflows/build-intellij-plugin.yml | |
| checks-neovim: | |
| name: Neovim Spec Tests | |
| runs-on: ubuntu-latest | |
| needs: [prepare-build] | |
| permissions: | |
| actions: read | |
| contents: read | |
| env: | |
| RUST_TARGET: x86_64-unknown-linux-gnu | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Wait for tinymist binary artifact | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| ARTIFACT_NAME: artifacts-build-local-${{ env.RUST_TARGET }} | |
| run: | | |
| set -euo pipefail | |
| for attempt in {1..720}; do | |
| if gh api "repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/artifacts" \ | |
| --jq '.artifacts[].name' | grep -Fxq "$ARTIFACT_NAME"; then | |
| echo "Found artifact: $ARTIFACT_NAME" | |
| exit 0 | |
| fi | |
| echo "Waiting for $ARTIFACT_NAME ($attempt/720)" | |
| sleep 30 | |
| done | |
| echo "Timed out waiting for artifact: $ARTIFACT_NAME" >&2 | |
| exit 1 | |
| - name: Download tinymist binary artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: artifacts-build-local-${{ env.RUST_TARGET }} | |
| path: prebuilts | |
| - name: Unzip tinymist binary artifact | |
| run: | | |
| tar -xvf prebuilts/tinymist-${{ env.RUST_TARGET }}.tar.gz -C prebuilts | |
| mv prebuilts/tinymist-${{ env.RUST_TARGET }}/tinymist prebuilts/tinymist | |
| chmod +x prebuilts/tinymist | |
| - name: Run Neovim specs | |
| run: ./editors/neovim/bootstrap.sh test | |
| env: | |
| TINYMIST_BIN: ${{ github.workspace }}/prebuilts/tinymist |