ci: move the CI to Gitea Actions and cache what is rebuilt
CI / Testes (Linux) (push) Successful in 1m1s
CI / Formatação e clippy (push) Successful in 1m43s
CI / Auditoria de dependências (push) Successful in 5m19s
CI / Compila o app desktop (Linux) (push) Successful in 4m59s

Linux-only runner, so the Windows and macOS legs and GitHub's audit action are
gone. The Rust toolchain, cargo registry and target directories live on the
runner's persistent toolcache volume. release.yml stays under .github and is
not run by Gitea.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas RayanandClaude Sonnet 5.5 committed 2026-10-30 10:45:46 -03:00
1 parent f62e7fd0a1
commit 9bcdd6c139
1 file changed
+26 -17
@@ -15,17 +15,24 @@ concurrency:
env: env:
CARGO_TERM_COLOR: always CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings RUSTFLAGS: -D warnings
# O runner mantém /opt/hostedtoolcache num volume que sobrevive entre jobs:
# a toolchain do rustup, o registry do cargo e o diretório target ficam ali,
# então nada disso é baixado ou recompilado do zero a cada execução. Cada job
# usa o seu próprio target (flags diferentes invalidariam o de outro job).
CARGO_HOME: /opt/hostedtoolcache/cargo
RUSTUP_HOME: /opt/hostedtoolcache/rustup
jobs: jobs:
lint: lint:
name: Formatação e clippy name: Formatação e clippy
runs-on: ubuntu-24.04 runs-on: ubuntu-latest
env:
CARGO_TARGET_DIR: /opt/hostedtoolcache/cargo-target/sabia-lint
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
with: with:
components: rustfmt, clippy components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-node@v7 - uses: actions/setup-node@v7
with: with:
node-version: 22 node-version: 22
@@ -34,37 +41,39 @@ jobs:
- run: cargo fmt --all -- --check - run: cargo fmt --all -- --check
- run: cargo clippy --workspace --all-targets - run: cargo clippy --workspace --all-targets
# Windows e macOS saem: o Gitea aqui tem um único runner, Linux arm64.
test: test:
name: Testes (${{ matrix.os }}) name: Testes (Linux)
runs-on: ${{ matrix.os }} runs-on: ubuntu-latest
strategy: env:
fail-fast: false CARGO_TARGET_DIR: /opt/hostedtoolcache/cargo-target/sabia-test
matrix:
os: [ubuntu-24.04, windows-latest, macos-latest]
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --workspace - run: cargo test --workspace
audit: audit:
name: Auditoria de dependências name: Auditoria de dependências
runs-on: ubuntu-24.04 runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v7
- uses: rustsec/audit-check@v2 - uses: dtolnay/rust-toolchain@stable
with: # rustsec/audit-check depends on GitHub's checks API. cargo-audit itself
token: ${{ secrets.GITHUB_TOKEN }} # needs nothing but the advisory database, and installing it once into the
# persistent CARGO_HOME makes every later run skip the compile.
- name: cargo audit
run: |
command -v cargo-audit >/dev/null || cargo install cargo-audit --locked
cargo audit
gui: gui:
name: Compila o app desktop (Linux) name: Compila o app desktop (Linux)
runs-on: ubuntu-24.04 runs-on: ubuntu-latest
env:
CARGO_TARGET_DIR: /opt/hostedtoolcache/cargo-target/sabia-gui
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: apps/gui/src-tauri
- uses: actions/setup-node@v7 - uses: actions/setup-node@v7
with: with:
node-version: 22 node-version: 22