From 2a01dcfc30158c0e9c999bc52ad5b32d950f1566 Mon Sep 17 00:00:00 2001 From: Shish Date: Mon, 8 Apr 2024 15:52:33 +0100 Subject: [PATCH] [devkits] nim devkit --- .docker/nim.dockerfile | 26 +++++++++++++++++++++++ .github/workflows/devkit-nim.yml | 36 ++++++++++++++++++++++++++++++++ .github/workflows/devkit.yml | 31 +++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 .docker/nim.dockerfile create mode 100644 .github/workflows/devkit-nim.yml create mode 100644 .github/workflows/devkit.yml diff --git a/.docker/nim.dockerfile b/.docker/nim.dockerfile new file mode 100644 index 0000000..483484b --- /dev/null +++ b/.docker/nim.dockerfile @@ -0,0 +1,26 @@ +ARG VERSION=2.0.2 + +FROM debian:unstable AS build +RUN apt update && apt install -y build-essential wget git +RUN adduser --disabled-password dev +ARG VERSION +USER dev +ENV PATH="/home/dev/.nim/bin:$PATH" +# choosenim doesn't work on arm64 D: +#ENV CHOOSENIM_CHOOSE_VERSION=${NIM_VERSION} +#RUN curl https://nim-lang.org/choosenim/init.sh -sSf | sh -s -- -y && \ +# nimble refresh +RUN wget -nv https://nim-lang.org/download/nim-${VERSION}.tar.xz -O - \ + | tar -xJ -C /tmp +RUN cd /tmp/nim-${VERSION} \ + && ./build.sh \ + && bin/nim c koch \ + && ./koch boot -d:release \ + && ./koch tools \ + && ./install.sh /tmp/install-nim \ + && mv /tmp/install-nim/nim /home/dev/.nim \ + && cp ./bin/nimble /home/dev/.nim/bin/ \ + && nimble refresh + +FROM scratch +COPY --from=build /home/dev/.nim /home/dev/.nim \ No newline at end of file diff --git a/.github/workflows/devkit-nim.yml b/.github/workflows/devkit-nim.yml new file mode 100644 index 0000000..851d38f --- /dev/null +++ b/.github/workflows/devkit-nim.yml @@ -0,0 +1,36 @@ +name: Devkit (nim) + +on: + push: + branches: + - master + - main + paths: + - '.docker/nim.dockerfile' + pull_request: + paths: + - '.docker/nim.dockerfile' + workflow_dispatch: + +jobs: + build: + name: Build + # uses: ./.github/workflows/devkit.yml + # with: + # lang: nim + # version: 2.0.2 + 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-nim + dockerfile: .docker/nim.dockerfile + buildoptions: "--build-arg VERSION=2.0.2" + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + tags: 2.0.2 + platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/devkit.yml b/.github/workflows/devkit.yml new file mode 100644 index 0000000..fd1013d --- /dev/null +++ b/.github/workflows/devkit.yml @@ -0,0 +1,31 @@ +name: Devkit + +on: + workflow_call: + inputs: + lang: + required: true + type: string + version: + required: true + type: string + +jobs: + build: + name: Build Container + runs-on: ubuntu-22.04 + 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-${{ inputs.lang }} + dockerfile: .docker/${{ inputs.lang }}.dockerfile + buildoptions: "--build-arg VERSION=${{ inputs.version }}" + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + tags: ${{ inputs.version }} + platforms: linux/amd64,linux/arm64