FROM docker.io/rust:1.87.0 AS build

WORKDIR /app

COPY . .

RUN cargo build --release --bin harmony_composer

FROM docker.io/rust:1.87.0

WORKDIR /app

RUN rustup target add x86_64-pc-windows-gnu
RUN rustup target add x86_64-unknown-linux-gnu
RUN rustup component add rustfmt
RUN rustup component add clippy

RUN apt update

# TODO: Consider adding more supported targets
# nodejs for checkout action, docker for building containers, mingw for cross-compiling for windows
RUN apt install -y nodejs docker.io mingw-w64

COPY --from=build /app/target/release/harmony_composer .

ENTRYPOINT ["/app/harmony_composer"]
