Fix Dagger pipeline: export built binaries to dist/ directory on host

This commit is contained in:
Bastian Bührig
2025-07-11 09:28:28 +02:00
parent ac678f2aa8
commit eae708151d
8 changed files with 219 additions and 3 deletions

View File

@@ -206,13 +206,39 @@ Generate IRs in different sample rates and bit depths:
--mpt
```
## CI/CD & Multi-Platform Builds
This project includes a Dagger pipeline for building binaries for multiple platforms:
- macOS ARM64 (darwin/arm64)
- macOS AMD64 (darwin/amd64)
- Windows AMD64 (windows/amd64)
- Linux AMD64 (linux/amd64)
The pipeline is defined in [`ci/dagger.go`](./ci/dagger.go). It outputs binaries named `valhallir-deconvolver-<os>-<arch>` in the `dist/` directory.
### Usage
1. Install the Dagger Go SDK:
```sh
go install dagger.io/dagger@latest
go mod tidy
```
2. Run the pipeline:
```sh
go run ci/dagger.go
```
### Troubleshooting Dagger
- If you see `could not import dagger.io/dagger`, make sure you have installed the Dagger Go SDK and run `go mod tidy`.
- The pipeline requires Docker or a compatible container runtime.
## Troubleshooting
### Common Issues
**"File is not a valid WAV file" error**
- Check that files are uncompressed WAV format
- Avoid MP3, FLAC, or other compressed formats
**Input file errors**
- Input files must be uncompressed WAV format. MP3, FLAC, or other compressed formats are not supported.
- Input sample rate, bit depth, and channel count are automatically converted (no need to preprocess).
**"Invalid sample rate" error (output)**
- Use only supported output sample rates: 44100, 48000, 88200, 96000
@@ -222,6 +248,10 @@ Generate IRs in different sample rates and bit depths:
- Use only supported output bit depths: 16, 24, 32
- Check the `--bit-depth` flag value
**Dagger pipeline errors**
- If you see `could not import dagger.io/dagger`, install the Dagger Go SDK and run `go mod tidy`.
- Make sure Docker or a compatible container runtime is running.
### Performance
- Processing time depends on file length
- FFT-based deconvolution is much faster than time-domain methods