Skip to content

chore: release v0.1.2 #77

chore: release v0.1.2

chore: release v0.1.2 #77

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
name: Check and build
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-llvm-cov
- uses: Swatinem/rust-cache@v2
- name: Install Tauri build dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
libayatana-appindicator3-dev \
libgtk-3-dev \
librsvg2-dev \
libssl-dev \
libwebkit2gtk-4.1-dev \
patchelf
- name: Install frontend dependencies
run: bun install --frozen-lockfile
- name: Svelte type check
run: bun run check
- name: Frontend tests
run: bun run test
- name: Frontend coverage
run: bun run test:coverage
- name: Build frontend
run: bun run build
- name: Rust tests
run: cargo test --workspace --locked --all-targets
- name: Rust coverage
run: |
mkdir -p target/llvm-cov
cargo llvm-cov --workspace --locked --all-targets --fail-under-lines 17 --lcov --output-path target/llvm-cov/lcov.info
cargo llvm-cov report --html
cargo llvm-cov report --text --output-path target/llvm-cov/summary.txt
- name: Upload frontend coverage
if: always()
uses: actions/upload-artifact@v7
with:
name: frontend-coverage
path: coverage/
if-no-files-found: warn
- name: Upload Rust coverage
if: always()
uses: actions/upload-artifact@v7
with:
name: rust-coverage
path: |
target/llvm-cov/html/
target/llvm-cov/lcov.info
target/llvm-cov/summary.txt
if-no-files-found: warn
- name: Write coverage summary
if: always()
shell: bash
run: |
summarize_lcov() {
local file="$1"
if [[ ! -f "$file" ]]; then
echo "not generated"
return
fi
awk '
/^LF:/ { lines += substr($0, 4) }
/^LH:/ { hit += substr($0, 4) }
END {
if (lines > 0) {
printf "%.2f%% (%d/%d)", hit * 100 / lines, hit, lines
} else {
printf "no line data"
}
}
' "$file"
}
{
echo "## Coverage"
echo "- Frontend lines: $(summarize_lcov coverage/lcov.info)"
echo "- Rust lines: $(summarize_lcov target/llvm-cov/lcov.info)"
} >> "$GITHUB_STEP_SUMMARY"
- name: Rust check (workspace)
run: cargo check --workspace --all-targets
- name: Rust check (production app features)
run: cargo check -p pickscribe-app --features pickscribe-app/custom-protocol