mirror of
https://github.com/helix-editor/helix
synced 2026-01-26 05:38:09 +01:00
The integration tests have recently become a bit flaky in that individual tests can seem to hang forever. This needs further investigation. In the meantime we should limit the total allowed time for the test workflow to something reasonably low. The default timeout is a very high 360min.
157 lines
4.6 KiB
YAML
157 lines
4.6 KiB
YAML
name: Build
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
merge_group:
|
|
schedule:
|
|
- cron: "00 01 * * *"
|
|
|
|
env:
|
|
MSRV: "1.82"
|
|
# This key can be changed to bust the cache of tree-sitter grammars.
|
|
GRAMMAR_CACHE_VERSION: ""
|
|
|
|
jobs:
|
|
check:
|
|
name: Check (msrv)
|
|
runs-on: ubuntu-latest
|
|
if: github.repository == 'helix-editor/helix' || github.event_name != 'schedule'
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install MSRV toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.MSRV }}
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: "build"
|
|
|
|
- name: Cache tree-sitter grammars
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: runtime/grammars
|
|
key: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-${{ hashFiles('languages.toml') }}
|
|
restore-keys: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-
|
|
|
|
- name: Run cargo check
|
|
run: cargo check
|
|
|
|
test:
|
|
name: Test Suite
|
|
runs-on: ${{ matrix.os }}
|
|
if: github.repository == 'helix-editor/helix' || github.event_name != 'schedule'
|
|
timeout-minutes: 30
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
HELIX_LOG_LEVEL: info
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install MSRV toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.MSRV }}
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: "build"
|
|
|
|
- name: Cache tree-sitter grammars
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: runtime/grammars
|
|
key: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-${{ hashFiles('languages.toml') }}
|
|
restore-keys: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-
|
|
|
|
- name: Run cargo test
|
|
run: cargo test --workspace
|
|
|
|
- name: Run cargo integration-test
|
|
run: cargo integration-test
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest, ubuntu-24.04-arm]
|
|
|
|
lints:
|
|
name: Lints
|
|
runs-on: ubuntu-latest
|
|
if: github.repository == 'helix-editor/helix' || github.event_name != 'schedule'
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install MSRV toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.MSRV }}
|
|
components: rustfmt, clippy
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: "build"
|
|
|
|
- name: Cache tree-sitter grammars
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: runtime/grammars
|
|
key: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-${{ hashFiles('languages.toml') }}
|
|
restore-keys: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-
|
|
|
|
- name: Run cargo fmt
|
|
run: cargo fmt --all --check
|
|
|
|
- name: Run cargo clippy
|
|
run: cargo clippy --workspace --all-targets -- -D warnings
|
|
|
|
- name: Run cargo doc
|
|
run: cargo doc --no-deps --workspace --document-private-items
|
|
env:
|
|
RUSTDOCFLAGS: -D warnings
|
|
|
|
docs:
|
|
name: Docs
|
|
runs-on: ubuntu-latest
|
|
if: github.repository == 'helix-editor/helix' || github.event_name != 'schedule'
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install MSRV toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.MSRV }}
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: "build"
|
|
|
|
- name: Cache tree-sitter grammars
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: runtime/grammars
|
|
key: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-${{ hashFiles('languages.toml') }}
|
|
restore-keys: ${{ runner.os }}-${{ runner.arch }}-stable-v${{ env.GRAMMAR_CACHE_VERSION }}-tree-sitter-grammars-
|
|
|
|
- name: Validate queries
|
|
run: cargo xtask query-check
|
|
|
|
- name: Validate themes
|
|
run: cargo xtask theme-check
|
|
|
|
- name: Generate docs
|
|
run: cargo xtask docgen
|
|
|
|
- name: Check uncommitted documentation changes
|
|
run: |
|
|
git diff
|
|
git diff-files --quiet \
|
|
|| (echo "Run 'cargo xtask docgen', commit the changes and push again" \
|
|
&& exit 1)
|