From 2e86deb8622410caa14bb55de29c970fb39f8a2f Mon Sep 17 00:00:00 2001 From: Karcsesz Date: Mon, 18 Mar 2024 01:54:16 +0100 Subject: [PATCH] Enable very rudimentary CI/CD (#1) Reviewed-on: https://code.thishorsie.rocks/Karcsesz/Fingerlink/pulls/1 Co-authored-by: Karcsesz Co-committed-by: Karcsesz --- .forgejo/workflows/docker.yml | 24 ++++++++++++++++++++++++ .forgejo/workflows/test.yml | 9 +++++++++ Dockerfile | 28 ++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 .forgejo/workflows/docker.yml create mode 100644 .forgejo/workflows/test.yml create mode 100644 Dockerfile diff --git a/.forgejo/workflows/docker.yml b/.forgejo/workflows/docker.yml new file mode 100644 index 0000000..889f142 --- /dev/null +++ b/.forgejo/workflows/docker.yml @@ -0,0 +1,24 @@ +on: + push: + branches: + - master +jobs: + docker: + name: docker build + runs-on: ubuntu-22.04 + needs: + - test + steps: + - uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME}} + password: ${{ secrets.DOCKERHUB_TOKEN}} + - uses: docker/build-push-action@v5 + with: + push: true + tags: karcsesz/fingerlink:latest + - uses: docker/build-push-action@v5 + with: + push: true + tags: karcsesz/fingerlink:latest-nano + build-args: "editor=nano" \ No newline at end of file diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml new file mode 100644 index 0000000..72615a2 --- /dev/null +++ b/.forgejo/workflows/test.yml @@ -0,0 +1,9 @@ +on: [push] +jobs: + test: + name: cargo test + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/rust-toolchain@stable + - run: cargo test --all-features diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..03921b1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM rust:latest as builder +LABEL authors="karcsesz" + +ARG target=x86_64-unknown-linux-musl + +RUN apt update && apt install -y musl-tools musl-dev +RUN update-ca-certificates +RUN rustup target add $target + +WORKDIR /fingerlink + +COPY . . + +RUN cargo build --target $target --release + +FROM alpine:latest + +ARG editor=vim + +RUN apk add --no-cache $editor +ENV EDITOR=$editor +ENV PATH="${PATH}:/fingerlink" +WORKDIR /fingerlink + +COPY --from=builder /fingerlink/target/x86_64-unknown-linux-musl/release/fingerlink /fingerlink/fingerlink + +ENTRYPOINT ["/fingerlink/fingerlink", "serve"] +CMD ["--help"] \ No newline at end of file