chore(CI): add rust and ts CI and release pipelines

Add dependabot config which autoupdates dependencies
add release config which creates a release based on tag push

Added rust and typescript ci integrations
This commit is contained in:
Rodney Osodo
2025-06-11 09:44:21 +03:00
parent 9ba713b910
commit 73157d1c6c
5 changed files with 174 additions and 1 deletions
+31
View File
@@ -0,0 +1,31 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "./.github/workflows"
schedule:
interval: "monthly"
day: "sunday"
groups:
gh-dependency:
patterns:
- "*"
- package-ecosystem: "bun"
directory: "/"
schedule:
interval: "monthly"
day: "sunday"
groups:
bun-dependency:
patterns:
- "*"
- package-ecosystem: "cargo"
directory: "./src-tauri"
schedule:
interval: "monthly"
day: "sunday"
groups:
cargo-dependency:
patterns:
- "*"
+65
View File
@@ -0,0 +1,65 @@
name: "Release"
on:
workflow_dispatch:
push:
tags:
- "*"
jobs:
publish:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-latest" # for Arm based macs (M1 and above).
args: "--target aarch64-apple-darwin"
- platform: "macos-latest" # for Intel based macs.
args: "--target x86_64-apple-darwin"
- platform: "ubuntu-22.04" # for Tauri v1 you could replace this with ubuntu-20.04.
args: ""
- platform: "windows-latest"
args: ""
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: install frontend dependencies
run: bun install
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: v__VERSION__
releaseName: "sqwerk v__VERSION__"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
args: ${{ matrix.args }}
+45
View File
@@ -0,0 +1,45 @@
name: Rust CI
on:
workflow_dispatch:
push:
branches:
- main
paths:
- "src-tauri/**"
- ".github/**"
pull_request:
branches:
- main
paths:
- "src-tauri/**"
- ".github/**"
env:
CARGO_TERM_COLOR: always
jobs:
rust-ci:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./src-tauri
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check formatting
run: cargo fmt --all -- --check
- name: Run linter
run: cargo clippy -- -D warnings
- name: Check cargo
run: cargo check --release --all-targets --all-features
- name: Run tests
run: cargo test --verbose
- name: Build for all features
run: cargo build --release --all-features
+33
View File
@@ -0,0 +1,33 @@
name: TS CI
on:
workflow_dispatch:
push:
branches:
- main
paths-ignore:
- "src-tauri/**"
pull_request:
branches:
- main
paths-ignore:
- "src-tauri/**"
jobs:
ts-ci:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install Dependencies
run: bun install
- name: Run Lint
run: bun run lint
-1
View File
@@ -22,4 +22,3 @@ tauri = { version = "2", features = [] }
tauri-plugin-opener = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"