Adds the complete signed Linux release matrix, FreeBSD CI, and packaging
lint to ArtCraft Studio, aligned with the Craft suite standards in
`craft-common-actions`.
| Architecture | Formats |
|:-------------|:------------------------------------------------------------------------|
| x86_64 | AppImage and zsync, DEB, RPM, tar.gz, Arch package, Flatpak
bundle, OCI |
| aarch64 | AppImage and zsync, DEB, RPM, tar.gz, Arch package, Flatpak
bundle, OCI |
| riscv64 | DEB, RPM, tar.gz |
### Changes
- **Linux Packaging Matrix**: Builds and packages ArtCraft Studio across
x86_64, aarch64, and riscv64 using `storytold/craft-common-actions`.
Produces DEB, RPM, AppImage, tarball, Arch package, and Flatpak
bundle/OCI artifacts. Cross-compiles riscv64 DEB and RPM via BoringSSL
CMake configuration. Signed Linux artifacts join existing
`artcraft-v<version>` release drafts while retaining macOS and Windows
assets (storytold/craft-common-actions#160 and #161).
- **Release Trigger Alignment**: Like macOS and Windows release
workflows, Linux release builds run on release branches (`release`,
`artcraft-release`, `artcraft-linux`) and `workflow_dispatch` rather
than on PRs.
- **Documentation**: Updated `README.md` to include Linux under download
options and reference `packaging/linux/README.md`. Added
`packaging/windows/README.md` placeholder.
- **Packaging Lint**: Added `.github/workflows/packaging-lint.yml`
calling `craft-common-actions/packaging-lint.yml@main`. Fixed
pre-existing actionlint and shellcheck issues in macOS and Windows
publish workflows (`shell: pwsh` defaults and variable quoting).
- **FreeBSD CI**: Added `.github/workflows/freebsd.yml` calling
`craft-common-actions/freebsd.yml@main` on scheduled nightly runs,
release branches, and manual dispatch (not on pull requests).
- **SQLx Build Fallback**: Updated
`crates/schema/database/sqlite_tasks/build.rs` to fall back to
`SQLX_OFFLINE=true` using committed `.sqlx/` query data when no live
`/tmp/tasks.sqlite` database file exists, fixing nextest coverage
archives under CI.
### Validation
- `actionlint` passes cleanly across all `.github/workflows/*.yml`
files.
- `shellcheck` passes across all scripts in `packaging/linux/*.sh`.
- `xmllint` validates `packaging/linux/ai.artcraft.app.metainfo.xml`.
- `cargo check -p sqlite_tasks`, `cargo test -p sqlite_tasks`, and
`cargo test --no-run -p sqlite_tasks` pass locally without database
environment variables.
- Packaging lint passes 100% green on CI.
- SonarCloud / nextest instrumented test archive build passes on CI.
- Linux package scripts (`package.sh`, `package-test.sh`, `flatpak.sh`)
verified locally and on CI runners.
## Summary
- Puts the shared house-rules blocks at the top of `AGENTS.md`, copied
from craft-contrib `dde09ea31e2e457f5b4653a6e76f7cdf55944bdf`.
- Adds `.github/workflows/house-rules.yml`, which calls the shared
check.
Artcraft is the Tauri product, so it gets the core block only. The Rust
rules are for native Craft apps and shared Rust libraries.
- `CLAUDE.md` was a symlink to `AGENTS.md` and is now `@AGENTS.md`.
- No local paragraph was removed. The Tauri and TypeScript description
stays.
## Sizes
- Core block: 3,052 bytes.
- Root `AGENTS.md`: 6,934 bytes.
SonarCloud coverage upload began on 2026-10-23
(craft-common-actions#74), but `cancel-in-progress: true` cancels
superseded runs on `main` before the llvm-cov build finishes, so
coverage may never be published. Cancel superseded runs only on PR refs;
main runs queue and complete. Same change as storytold/vectorcraft#3881.
Calls storytold/craft-common-actions/.github/workflows/sonarcloud.yml@main
with secrets: inherit. Adds SonarCloud badge to README where missing and
removes the redundant sonar-project.properties (config now passed by the
reusable workflow).
Configures Dependabot to keep Rust / Cargo dependencies and GitHub
Actions workflows up to date.
- Schedules daily dependency checks at 06:00 America/New_York
- Groups Cargo updates into a single consolidated PR with `chore(deps)`
prefix
- Groups GitHub Actions updates into a single consolidated PR with
`ci(deps)` prefix
This is a fresh start for the `artcraft` repo.
The old monorepo, which included our web API gateway, job services, SRE
tools, various frontends, and more has moved to `artcraft-services`
You can find the full git history here:
https://github.com/storytold/artcraft-services
This change was motivated by the fact that the entire git history was
hundreds of gigabytes in size, which is unwieldy for anyone not in the
core team that doesn't care about support services outside of the core
artcraft app.
We wanted to keep this repo in its well-known place since we already
have users and activity here.
Please update your remotes to either `artcraft-services` or make a fresh
clone of this repo.
History can be found at the artcraft-services repo.