# docker-builder-rust

Docker image for building Rust projects with Cargo.

## Usage

In a Forgejo action file, e.g. `.forgejo/workflows/test.yml`:

```yml
on: [push]
jobs:
  test:
    runs-on: docker
    steps:
      - uses: https://git.kemitix.net/kemitix/rust@main
        with:
          args: test
      - uses: https://git.kemitix.net/kemitix/rust@main
        with:
          args: build

```

## Contents

- nodejs
- clang-16
- mold
- rust
- cargo
- cargo-binstall

## Linking

To take advantage of the clang and mold packages, add the following to the `.cargo/config.toml` file in your project.

```toml
[target.x86_64-unknown-linux-gnu]                                                
linker = "/usr/bin/clang-16"                                                     
rustflags = ["-C", "link-arg=--ld-path=/usr/bin/mold"]
```

## Binary size

To reduce the size of the debug binary, add the following to the `.cargo/config.toml` file in you project.

```toml
[profile.dev]      
debug = 0          
strip = "debuginfo"
```