Skip to content

refactor keybinding parsing to rust #607

refactor keybinding parsing to rust

refactor keybinding parsing to rust #607

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags:
- v[0-9]+.[0-9]+.[0-9]+*
paths:
- src/**
pull_request:
types: ['opened', 'edited', 'reopened', 'synchronize', 'ready_for_review']
jobs:
tests:
name: Tests
timeout-minutes: 60
if: '! github.event.pull_request.draft'
strategy:
matrix: { environment: ['-web', ''] }
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Dev Environment
uses: jdx/mise-action@v2
with:
version: 2025.6.4
install: true
cache: true
- name: Prepare Cache
run: |
mkdir -p $(pnpm store path)
mkdir -p $HOME/Library/Caches
mkdir -p ${{ github.workspace }}/.vscode-test${{ matrix.environment }}
echo "PNPM_STORE_PATH=$(pnpm store path)" >> $GITHUB_ENV
echo "Created cachedir $HOME/Library/Caches"
- name: Cache
uses: actions/cache@v4
with:
key: mise${{ matrix.environment }}-${{ hashFiles('{0}/vscode-master-key/mise.toml {0}/vscode-master-key/pnpm-lock.yaml', github.workspace) }}
path: |
${{ github.workspace }}/.vscode-test${{ matrix.environment }}
${{ env.PNPM_STORE_PATH }}
$HOME/Library/Caches
- name: Install Dependencies
run: pnpm install --frozen-lockfile && pnpm exec playwright install chromium
- name: Unit Tests
env: { COVERAGE: 'true' }
run: |
mise test${{ matrix.environment }}
mise test-rust
- name: Integration Tests
if: matrix.environment == ''
env: { COVERAGE: 'true' }
run: mise run test-integration
- uses: actions/upload-artifact@v4
name: Upload Integration Logs
if: ${{ !cancelled() && matrix.environment == ''}}
with:
name: test-results
path: test-results/
retention-days: 7
- uses: actions/upload-artifact@v4
name: Upload Integration Report
if: ${{ !cancelled() && matrix.environment == ''}}
with:
name: playwright-report
path: playwright-report/
retention-days: 7
- name: Assemble Coverage Results
if: matrix.environment == ''
run: mise assemble-coverage
- name: Upload coverage to Codecov
if: matrix.environment == ''
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}