chore: migrate CI to Forgejo
All checks were successful
Build and test / Clippy (pull_request) Successful in 44s
Build and test / Tests (pull_request) Successful in 55s
Build and test / Build AMD64 (pull_request) Successful in 56s
Checking yaml / Run yamllint (pull_request) Successful in 5s
Build and test / Generate Documentation (pull_request) Successful in 51s
Checking Renovate configuration / validate (pull_request) Successful in 56s

This commit is contained in:
Marc Plano-Lesay 2025-08-01 11:55:52 +10:00
parent 14165f0137
commit f528650fb3
Signed by: kernald
GPG key ID: 66A41B08CC62A6CF
6 changed files with 219 additions and 62 deletions

149
.forgejo/workflows/rust.yml Normal file
View file

@ -0,0 +1,149 @@
---
# yamllint disable rule:line-length
name: Build and test
on: # yamllint disable-line rule:truthy
pull_request:
jobs:
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Rust toolchain and dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo
~/.rustup
target
key: ${{ runner.os }}-rustup-cargo-test-${{ hashFiles('rust-toolchain.toml', 'rust-toolchain') || 'stable' }}
restore-keys: |
${{ runner.os }}-rustup-cargo-test-
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt
override: true
- name: Show versions
run: |
rustc --version
cargo --version
- name: Check formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --check
- name: Run tests
uses: actions-rs/cargo@v1
with:
command: test
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Rust toolchain and dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo
~/.rustup
target
key: ${{ runner.os }}-rustup-cargo-clippy-${{ hashFiles('rust-toolchain.toml', 'rust-toolchain') || 'stable' }}
restore-keys: |
${{ runner.os }}-rustup-cargo-clippy-
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: clippy
override: true
- name: Show versions
run: |
rustc --version
cargo --version
- name: Clippy check
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
build-amd64:
name: Build AMD64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Rust toolchain and dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo
~/.rustup
target
key: ${{ runner.os }}-rustup-cargo-build-${{ hashFiles('rust-toolchain.toml', 'rust-toolchain') || 'stable' }}
restore-keys: |
${{ runner.os }}-rustup-cargo-build-
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Show versions
run: |
rustc --version
cargo --version
- name: Build release binary
uses: actions-rs/cargo@v1
with:
command: build
args: --release --all-features
- name: Upload binary artifact
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with:
name: immich-tools-linux-amd64
path: target/release/immich-tools
rustdoc:
name: Generate Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Rust toolchain and dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo
~/.rustup
target
key: ${{ runner.os }}-rustup-cargo-doc-${{ hashFiles('rust-toolchain.toml', 'rust-toolchain') || 'stable' }}
restore-keys: |
${{ runner.os }}-rustup-cargo-doc-
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Show versions
run: |
rustc --version
cargo --version
- name: Generate documentation
uses: actions-rs/cargo@v1
with:
command: doc
- name: Compress documentation
run: tar -czf rustdoc.tar.gz -C target doc
- name: Upload documentation artifact
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with:
name: rustdoc
path: rustdoc.tar.gz
...