From 5cbb2ba3ce689c011c4347407f739fb662a6da11 Mon Sep 17 00:00:00 2001 From: Shish Date: Mon, 8 Apr 2024 17:32:17 +0100 Subject: [PATCH] [devkits] rust devkit --- .docker/rust.dockerfile | 15 ++++++++++++ .github/workflows/devkit-rust.yml | 39 +++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 .docker/rust.dockerfile create mode 100644 .github/workflows/devkit-rust.yml diff --git a/.docker/rust.dockerfile b/.docker/rust.dockerfile new file mode 100644 index 0000000..10a4883 --- /dev/null +++ b/.docker/rust.dockerfile @@ -0,0 +1,15 @@ +FROM debian:unstable AS build +ARG VERSION +RUN apt update && apt install -y adduser wget +RUN adduser --disabled-password dev +USER dev +ENV PATH="/home/dev/.cargo/bin:$PATH" +RUN wget -nv -qO - https://sh.rustup.rs | sh -s -- --default-toolchain ${VERSION} -y \ + && cargo search foo +# Cranelift is only in nightly +RUN rustup toolchain install nightly \ + && rustup component add rustc-codegen-cranelift-preview --toolchain nightly + +FROM scratch +COPY --from=build /home/dev/.rustup /home/dev/.rustup +COPY --from=build /home/dev/.cargo /home/dev/.cargo diff --git a/.github/workflows/devkit-rust.yml b/.github/workflows/devkit-rust.yml new file mode 100644 index 0000000..2b63102 --- /dev/null +++ b/.github/workflows/devkit-rust.yml @@ -0,0 +1,39 @@ +name: Devkit (rust) + +on: + push: + branches: + - master + - main + paths: + - '.docker/rust.dockerfile' + - '.github/workflows/devkit-rust.yml' + pull_request: + paths: + - '.docker/rust.dockerfile' + - '.github/workflows/devkit-rust.yml' + workflow_dispatch: + +jobs: + build: + name: Build + runs-on: ubuntu-22.04 + strategy: + matrix: + lang: ["rust"] + version: ["1.77.1"] + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Publish + uses: elgohr/Publish-Docker-Github-Action@main + with: + name: shish2k/rosettaboy-devkit-${{ matrix.lang }} + dockerfile: .docker/${{ matrix.lang }}.dockerfile + buildoptions: "--build-arg VERSION=${{ matrix.version }}" + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + tags: ${{ matrix.version }} + platforms: linux/amd64,linux/arm64