Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.33 to 2.62.38. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's releases</a>.</em></p> <blockquote> <h2>2.62.38</h2> <ul> <li> <p>Update <code>coreutils@latest</code> to 0.3.0.</p> </li> <li> <p>Update <code>wasmtime@latest</code> to 38.0.3.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.17.</p> </li> <li> <p>Update <code>cargo-tarpaulin@latest</code> to 0.34.1.</p> </li> </ul> <h2>2.62.37</h2> <ul> <li> <p>Update <code>cargo-binstall@latest</code> to 1.15.8.</p> </li> <li> <p>Update <code>zizmor@latest</code> to 1.16.0.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.16.</p> </li> </ul> <h2>2.62.36</h2> <ul> <li> <p>Update <code>syft@latest</code> to 1.36.0.</p> </li> <li> <p>Update <code>vacuum@latest</code> to 0.19.0.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.15.</p> </li> </ul> <h2>2.62.35</h2> <ul> <li> <p>Update <code>wasmtime@latest</code> to 38.0.2.</p> </li> <li> <p>Update <code>cargo-nextest@latest</code> to 0.9.108.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.14.</p> </li> <li> <p>Update <code>vacuum@latest</code> to 0.18.9.</p> </li> <li> <p>Update <code>uv@latest</code> to 0.9.5.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.13.</p> </li> </ul> <h2>2.62.34</h2> <ul> <li> <p>Update <code>sccache@latest</code> to 0.12.0.</p> </li> <li> <p>Update <code>wasmtime@latest</code> to 38.0.1.</p> </li> <li> <p>Update <code>rclone@latest</code> to 1.71.2.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.12.</p> </li> <li> <p>Update <code>vacuum@latest</code> to 0.18.8.</p> </li> <li> <p>Update <code>ubi@latest</code> to 0.8.2.</p> </li> <li> <p>Update <code>cargo-tarpaulin@latest</code> to 0.34.0.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <p>All notable changes to this project will be documented in this file.</p> <p>This project adheres to <a href="https://semver.org">Semantic Versioning</a>.</p> <!-- raw HTML omitted --> <h2>[Unreleased]</h2> <ul> <li>Update <code>mise@latest</code> to 2025.10.18.</li> </ul> <h2>[2.62.38] - 2025-10-25</h2> <ul> <li> <p>Update <code>coreutils@latest</code> to 0.3.0.</p> </li> <li> <p>Update <code>wasmtime@latest</code> to 38.0.3.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.17.</p> </li> <li> <p>Update <code>cargo-tarpaulin@latest</code> to 0.34.1.</p> </li> </ul> <h2>[2.62.37] - 2025-10-24</h2> <ul> <li> <p>Update <code>cargo-binstall@latest</code> to 1.15.8.</p> </li> <li> <p>Update <code>zizmor@latest</code> to 1.16.0.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.16.</p> </li> </ul> <h2>[2.62.36] - 2025-10-23</h2> <ul> <li> <p>Update <code>syft@latest</code> to 1.36.0.</p> </li> <li> <p>Update <code>vacuum@latest</code> to 0.19.0.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.15.</p> </li> </ul> <h2>[2.62.35] - 2025-10-22</h2> <ul> <li> <p>Update <code>wasmtime@latest</code> to 38.0.2.</p> </li> <li> <p>Update <code>cargo-nextest@latest</code> to 0.9.108.</p> </li> <li> <p>Update <code>mise@latest</code> to 2025.10.14.</p> </li> <li> <p>Update <code>vacuum@latest</code> to 0.18.9.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="c5b1b6f479"><code>c5b1b6f</code></a> Release 2.62.38</li> <li><a href="7cd74f6aac"><code>7cd74f6</code></a> Update <code>coreutils@latest</code> to 0.3.0</li> <li><a href="def9901333"><code>def9901</code></a> Update <code>wasmtime@latest</code> to 38.0.3</li> <li><a href="a9d3853729"><code>a9d3853</code></a> Update coreutils manifest</li> <li><a href="958d48b0c9"><code>958d48b</code></a> Update <code>mise@latest</code> to 2025.10.17</li> <li><a href="fb485991fd"><code>fb48599</code></a> Update <code>cargo-tarpaulin@latest</code> to 0.34.1</li> <li><a href="1c7b1d35fc"><code>1c7b1d3</code></a> Release 2.62.37</li> <li><a href="18cba62798"><code>18cba62</code></a> Update <code>cargo-binstall@latest</code> to 1.15.8</li> <li><a href="f3c0c6962a"><code>f3c0c69</code></a> Update <code>zizmor@latest</code> to 1.16.0</li> <li><a href="99fc3e5b1e"><code>99fc3e5</code></a> Update <code>mise@latest</code> to 2025.10.16</li> <li>Additional commits viewable in <a href="e43a5023a7...c5b1b6f479">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
291 lines
11 KiB
YAML
291 lines
11 KiB
YAML
name: Continuous Integration
|
|
|
|
# Set the permissions of the github token to the minimum and only enable what is needed
|
|
# See https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions
|
|
permissions: {}
|
|
|
|
on:
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
# ensure that the workflow is only triggered once per PR, subsequent pushes to the PR will cancel
|
|
# and restart the workflow. See https://docs.github.com/en/actions/using-jobs/using-concurrency
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
# lint, clippy and coverage jobs are intentionally early in the workflow to catch simple formatting,
|
|
# typos, and missing tests as early as possible. This allows us to fix these and resubmit the PR
|
|
# without having to wait for the comprehensive matrix of tests to complete.
|
|
jobs:
|
|
# Lint the formatting of the codebase.
|
|
lint-formatting:
|
|
name: Check Formatting
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: nightly
|
|
components: rustfmt
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: taplo-cli
|
|
- run: cargo xtask format --check
|
|
|
|
# Check for typos in the codebase.
|
|
# See <https://github.com/crate-ci/typos/>
|
|
lint-typos:
|
|
name: Check Typos
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: crate-ci/typos@80c8a4945eec0f6d464eaf9e65ed98ef085283d1 # master
|
|
|
|
# Check for any disallowed dependencies in the codebase due to license / security issues.
|
|
# See <https://github.com/EmbarkStudios/cargo-deny>
|
|
dependencies:
|
|
name: Check Dependencies
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: stable
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: cargo-deny
|
|
- run: cargo deny --log-level info --all-features check
|
|
|
|
# Check for any unused dependencies in the codebase.
|
|
# See <https://github.com/bnjbvr/cargo-machete/>
|
|
cargo-machete:
|
|
name: Check Unused Dependencies
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: bnjbvr/cargo-machete@7959c845782fed02ee69303126d4a12d64f1db18 # v0.9.1
|
|
|
|
# Run cargo clippy.
|
|
#
|
|
# We check for clippy warnings on beta, but these are not hard failures. They should often be
|
|
# fixed to prevent clippy failing on the next stable release, but don't block PRs on them unless
|
|
# they are introduced by the PR.
|
|
lint-clippy:
|
|
name: Check Clippy
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolchain: ["stable", "beta"]
|
|
continue-on-error: ${{ matrix.toolchain == 'beta' }}
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
components: clippy
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- run: cargo xtask clippy
|
|
env:
|
|
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
|
|
|
|
# Run markdownlint on all markdown files in the repository.
|
|
lint-markdown:
|
|
name: Check Markdown
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: DavidAnson/markdownlint-cli2-action@992badcdf24e3b8eb7e87ff9287fe931bcb00c6e # v20
|
|
with:
|
|
globs: |
|
|
'**/*.md'
|
|
'!target'
|
|
|
|
# Run cargo coverage. This will generate a coverage report and upload it to codecov.
|
|
# <https://app.codecov.io/gh/ratatui/ratatui>
|
|
coverage:
|
|
name: Coverage Report
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: stable
|
|
components: llvm-tools
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: cargo-llvm-cov
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- run: cargo xtask coverage
|
|
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
fail_ci_if_error: true
|
|
|
|
# Run cargo check. This is a fast way to catch any obvious errors in the code.
|
|
check:
|
|
name: Check ${{ matrix.os }} ${{ matrix.toolchain }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
toolchain: ["1.85.0", "stable"]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: cargo-hack
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- run: cargo xtask check --all-features
|
|
env:
|
|
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
|
|
|
|
build-no-std:
|
|
name: Build No-Std
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: stable
|
|
targets: x86_64-unknown-none
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
# This makes it easier to debug the exact versions of the dependencies
|
|
- run: cargo tree --target x86_64-unknown-none -p ratatui-core
|
|
- run: cargo tree --target x86_64-unknown-none -p ratatui-widgets
|
|
- run: cargo tree --target x86_64-unknown-none -p ratatui-macros
|
|
- run: cargo tree --target x86_64-unknown-none -p ratatui --no-default-features
|
|
- run: cargo build --target x86_64-unknown-none -p ratatui-core
|
|
- run: cargo build --target x86_64-unknown-none -p ratatui-widgets
|
|
- run: cargo build --target x86_64-unknown-none -p ratatui-macros
|
|
- run: cargo build --target x86_64-unknown-none -p ratatui --no-default-features
|
|
|
|
# Check if README.md is up-to-date with the crate's documentation.
|
|
check-readme:
|
|
name: Check README
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: cargo-rdme
|
|
- run: cargo xtask readme --check
|
|
|
|
# Run cargo rustdoc with the same options that would be used by docs.rs, taking into account the
|
|
# package.metadata.docs.rs configured in Cargo.toml. https://github.com/dtolnay/cargo-docs-rs
|
|
lint-docs:
|
|
name: Check Docs
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
RUSTDOCFLAGS: -Dwarnings
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: nightly
|
|
- uses: dtolnay/install@74f735cdf643820234e37ae1c4089a08fd266d8a # master
|
|
with:
|
|
crate: cargo-docs-rs
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: cargo-hack
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- run: cargo xtask docs
|
|
|
|
# Run cargo test on the documentation of the crate. This will catch any code examples that don't
|
|
# compile, or any other issues in the documentation.
|
|
test-docs:
|
|
name: Test Docs
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: stable
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: cargo-hack
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- run: cargo xtask test-docs
|
|
|
|
# Run cargo test on the libraries of the crate.
|
|
test-libs:
|
|
name: Test Libs ${{ matrix.toolchain }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolchain: ["1.85.0", "stable"]
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: stable
|
|
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
|
with:
|
|
tool: cargo-hack
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- run: cargo xtask test-libs
|
|
|
|
# Run cargo test on all the backends.
|
|
test-backends:
|
|
name: Test ${{matrix.backend}} on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
backend: [crossterm, termion, termwiz]
|
|
exclude:
|
|
# termion is not supported on windows
|
|
- os: windows-latest
|
|
backend: termion
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
|
with:
|
|
toolchain: stable
|
|
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
|
- run: cargo xtask test-backend ${{ matrix.backend }}
|