diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 0000000..cc8dfbc --- /dev/null +++ b/.github/dependabot.yaml @@ -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: + - "*" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..6c775f0 --- /dev/null +++ b/.github/workflows/release.yaml @@ -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 }} diff --git a/.github/workflows/rs-ci.yaml b/.github/workflows/rs-ci.yaml new file mode 100644 index 0000000..709f7e3 --- /dev/null +++ b/.github/workflows/rs-ci.yaml @@ -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 diff --git a/.github/workflows/ts-ci.yaml b/.github/workflows/ts-ci.yaml new file mode 100644 index 0000000..bae3e45 --- /dev/null +++ b/.github/workflows/ts-ci.yaml @@ -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 diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index d3f0d17..78fb67b 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -22,4 +22,3 @@ tauri = { version = "2", features = [] } tauri-plugin-opener = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" -