Skip to content

fix(ls): pad -C columns with tabs, drop trailing whitespace (#118) #299

fix(ls): pad -C columns with tabs, drop trailing whitespace (#118)

fix(ls): pad -C columns with tabs, drop trailing whitespace (#118) #299

Workflow file for this run

name: Test
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
# Pre-empt the June 2 2026 GitHub Actions Node 24 cutover. Forces all
# JS-based actions (setup-zig, setup-just, etc.) to run on Node 24
# regardless of their action.yml-declared runtime.
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
concurrency:
group: test-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os: [macos-26, ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
with:
version: 0.16.0
- uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # v4
- run: just test
- run: just test-integration
- name: Install bash 4+ (macOS)
if: runner.os == 'macOS'
run: brew install bash
- run: just build
- run: just it
- name: Cache apt packages
if: runner.os == 'Linux'
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: /var/cache/apt/archives/*.deb
key: apt-${{ runner.os }}-fakeroot
- name: Run privileged tests
if: runner.os == 'Linux'
run: |
sudo apt-get update && sudo apt-get install -y fakeroot
just test-privileged
coverage:
timeout-minutes: 30
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
with:
version: 0.16.0
- name: Cache kcov
id: cache-kcov
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: /usr/local/bin/kcov
key: kcov-${{ runner.os }}-${{ runner.arch }}
- name: Install kcov build deps
if: steps.cache-kcov.outputs.cache-hit != 'true'
run: |
sudo apt-get update
sudo apt-get install -y cmake pkg-config libdw-dev libcurl4-openssl-dev zlib1g-dev libiberty-dev binutils-dev
- name: Build kcov
if: steps.cache-kcov.outputs.cache-hit != 'true'
run: |
git clone --depth 1 https://github.com/SimonKagstrom/kcov.git /tmp/kcov
cd /tmp/kcov && mkdir build && cd build && cmake .. && make -j"$(nproc)" && sudo make install
- name: Cache apt packages
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: /var/cache/apt/archives/*.deb
key: apt-${{ runner.os }}-kcov-runtime
- name: Install kcov runtime deps
run: |
sudo apt-get update
sudo apt-get install -y libdw1 libcurl4
- uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # v4
- run: just coverage
- name: Upload coverage report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: coverage-report
path: zig-out/coverage/merged/