This adds a workflow (or actually several parallel ones) that gets triggered for a new tag. It builds binaries for several different platforms, creates a release and attaches them as downloads. I wasn't able to make this work for arm64 (because of ring) therefore I commented that part for now.
Fix#59
* Dockerfile: add test stage with cargo test entrypoint
* Workflows: merge all in docker.yml
- Run cargo test in docker.yml workflow
- Manage PRs, releases, branches and latest altogether with variables
* Workflows: update dockerhub description
* Add clippy linting
* Modify Dockerfile
- Use rustup from Docker image
- Give up on cross compilation (ring issue)
- Remove useless duplicate cargo install step
- No need to specify target as it is built statically for the docker platform targeted
- Shorten binary path output for shorter COPY
* Github Actions to build for all ARM as well
* Remove unneded musl-dev
* Adapt build for all platforms
- Use Debian based Rust for compilation
- Cross compile on build platform
- Compile static binaries using musl
- Set variables correctly for all Docker supported platforms
- Note: ppc64le, s390x and riscv64 do not support the Rust standard lib
- Persist target platform variables through files
- Define linkers in .cargo/config
- Cache dependencies properly for target platform
- Scratch stage to test the binary for target platform
* Add 386 arch to CI
* Use buildkit for docker build
* Only build for amd64 on branches
* Fix dependencies caching
* Split dependencies fetching and compilation
* Documentation
* Build for all architectures on branch
* Add STATIC build argument
* Documentation