Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Build Bakeru Linux

on:
push:
branches: [main]
workflow_dispatch:

jobs:
build-linux:
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- target: x86_64-unknown-linux-gnu
arch: x64

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-0 \
libgtk-3-dev \
libwebkit2gtk-4.1-0 \
libwebkit2gtk-4.1-dev \
libappindicator3-1 \
librsvg2-dev \
patchelf \
libxdo-dev \
libssl-dev \
pkg-config \
build-essential \
curl \
wget \
file \
libx11-dev \
libxcb1-dev \
libxcb-render0-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install frontend deps
run: npm install
working-directory: ./bakeru

- name: Install Tauri CLI
run: cargo install tauri-cli --locked

- name: Build Bakeru (AppImage, DEB, RPM)
run: |
npm run tauri build -- --target ${{ matrix.target }} --bundles appimage,deb,rpm
working-directory: ./bakeru
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}

- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: bakeru-linux-${{ matrix.arch }}-appimage
path: bakeru/src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage

- name: Upload DEB
uses: actions/upload-artifact@v4
with:
name: bakeru-linux-${{ matrix.arch }}-deb
path: bakeru/src-tauri/target/${{ matrix.target }}/release/bundle/deb/*.deb

- name: Upload RPM
uses: actions/upload-artifact@v4
with:
name: bakeru-linux-${{ matrix.arch }}-rpm
path: bakeru/src-tauri/target/${{ matrix.target }}/release/bundle/rpm/*.rpm
176 changes: 176 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
name: Build and Release Bakeru

on:
push:
tags:
- '*-release'
workflow_dispatch:

jobs:
# Build for macOS
build-macos:
runs-on: macos-latest
strategy:
matrix:
include:
- target: aarch64-apple-darwin
arch: arm64
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install frontend deps
run: npm install
working-directory: ./bakeru

- name: Install Tauri CLI
run: cargo install tauri-cli --locked

- name: Build Bakeru
run: npm run tauri build -- --target ${{ matrix.target }}
working-directory: ./bakeru
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}

- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: bakeru-macos-${{ matrix.arch }}
path: bakeru/src-tauri/target/${{ matrix.target }}/release/bundle/dmg/*.dmg

# Build for Linux
build-linux:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-0 \
libwebkit2gtk-4.1-0 \
libappindicator3-1 \
librsvg2-dev \
patchelf \
libxdo-dev \
libssl-dev \
pkg-config

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install frontend deps
run: npm install
working-directory: ./bakeru

- name: Install Tauri CLI
run: cargo install tauri-cli --locked

- name: Build Bakeru (AppImage, DEB, RPM)
run: |
npm run tauri build -- --bundles appimage,deb,rpm
working-directory: ./bakeru
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}

- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: bakeru-linux-appimage
path: bakeru/src-tauri/target/release/bundle/appimage/*.AppImage

- name: Upload DEB
uses: actions/upload-artifact@v4
with:
name: bakeru-linux-deb
path: bakeru/src-tauri/target/release/bundle/deb/*.deb

- name: Upload RPM
uses: actions/upload-artifact@v4
with:
name: bakeru-linux-rpm
path: bakeru/src-tauri/target/release/bundle/rpm/*.rpm

# Build for Windows
build-windows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install frontend deps
run: npm install
working-directory: ./bakeru

- name: Install Tauri CLI
run: cargo install tauri-cli --locked

- name: Build Bakeru (MSI)
run: |
npm run tauri build -- --bundles msi
working-directory: ./bakeru
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}

- name: Upload MSI
uses: actions/upload-artifact@v4
with:
name: bakeru-windows-msi
path: bakeru/src-tauri/target/release/bundle/msi/*.msi

# Create GitHub Release
release:
needs: [build-macos, build-linux, build-windows]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts

- name: Display structure of downloaded files
run: ls -R artifacts

- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
artifacts/bakeru-macos-*/**/*.dmg
artifacts/bakeru-linux-appimage/**/*.AppImage
artifacts/bakeru-linux-deb/**/*.deb
artifacts/bakeru-linux-rpm/**/*.rpm
artifacts/bakeru-windows-msi/**/*.msi
draft: false
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49 changes: 49 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build Bakeru Windows

on:
push:
branches: [main]
workflow_dispatch:

jobs:
build-windows:
runs-on: windows-latest
strategy:
matrix:
include:
- target: x86_64-pc-windows-msvc

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install frontend deps
run: npm install
working-directory: ./bakeru

- name: Install Tauri CLI
run: cargo install tauri-cli --locked

- name: Build Bakeru (MSI)
run: |
npm run tauri build -- --target ${{ matrix.target }} --bundles msi
working-directory: ./bakeru
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}

- name: Upload MSI
uses: actions/upload-artifact@v4
with:
name: bakeru-windows-msi
path: bakeru/src-tauri/target/${{ matrix.target }}/release/bundle/msi/*.msi
8 changes: 2 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇⢷⡏⠃⢠⠇⠀⠀⣀⠄⠀⠀⠀⣿⡖⠀⠀ %@= @@- #@# @@# *@@@ @@+ %@@@@@
⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⢨⠇⠀⡼⢀⠔⠊⠀⠀⠀⠀⠀⠘⣯⣄⢀ %@= -@@@@@@@@ @@. -@@@@@@=
⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇⣼⡀⣰⣷⠁⠀⠀⠀⠀⠀⠀⠀⠀⣇⢻⣧⡄
⠀ ⠀⠀⠀⠀⠀⠀⣀⣮⣿⣿⣿⣯⡭⢉⠟⠛⠳⢤⣄⣀⣀⣀⣀⡴⢠⠨⢻⣿ Version 3.1.0
⠀ ⠀⠀⠀⠀⠀⠀⣀⣮⣿⣿⣿⣯⡭⢉⠟⠛⠳⢤⣄⣀⣀⣀⣀⡴⢠⠨⢻⣿ Version 3.2.1
⠀ ⠀ ⢀⣾⣿⣿⣿⣿⢏⠓⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢨⣿
⠀ ⣰⣿⣿⣿⣿⣿⣿⡱⠌⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢭⣾⠏ Tauri Application by @willnjohnson
⣰⡿⠟⠋⠛⢿⣿⣿⊊⠡⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⢀⣠⣼⡿⠋⠀
Expand All @@ -39,11 +39,6 @@ Originally, when I built this tool, it was built as a Windows-only Visual Studio
> * Help quickly extract puzzle data with a "Copy HTML" button.
> * Provide visual symbol replacement to match the solver's clean interface.

> [!WARNING]
> App might fail to give proper steps at **Level 1** (i.e. provides 1 step instead of 2 steps), but hey, you can solve it... It's really easy!
>
> But it works flawlessly for **Levels 2-100.**

## Installation

No need to install any dependencies. Just a simple installation:
Expand Down Expand Up @@ -106,6 +101,7 @@ Throughout its development, this project has explored several search strategies

* **ShapeShifter algorithm:** [Dr. Plank's lab writeup explanation](https://web.archive.org/web/20240418234629/https://web.eecs.utk.edu/~jplank/plank/classes/cs202/Labs/Lab9/)
* **A-Star Heuristic search:** [CMU AI Course PDF](https://www.cs.cmu.edu/~cga/ai-course/astar.pdf)
* **Lights Out: Solutions Using Linear Algebra:** [Madsen Lights Out PDF](http://cau.ac.kr/~mhhgtx/courses/LinearAlgebra/references/MadsenLightsOut.pdf)
* **She Who Shapes:** [Historical Shapeshifter Resource](https://shewhoshapes.wordpress.com/)

---
Expand Down
2 changes: 1 addition & 1 deletion bakeru/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "bakeru",
"private": true,
"version": "3.1.0",
"version": "3.2.1",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
10 changes: 5 additions & 5 deletions bakeru/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[package]
name = "tauri_app"
version = "3.1.0"
description = "A Tauri App"
authors = ["William", "KVHO"]
name = "bakeru"
version = "3.2.1"
description = "A Shapeshifter Solver"
authors = ["William", "Kvho"]
edition = "2021"

[lib]
name = "tauri_app_lib"
name = "bakeru_lib"
crate-type = ["staticlib", "cdylib", "rlib"]

[build-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion bakeru/src-tauri/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]

fn main() {
tauri_app_lib::run()
bakeru_lib::run()
}
2 changes: 1 addition & 1 deletion bakeru/src-tauri/src/solver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -225,4 +225,4 @@ impl Solver {
}
steps
}
}
}
Loading