diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9880fec..dc7818b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,16 +17,16 @@ jobs: fail-fast: false max-parallel: 4 matrix: - platform: ["linux/arm/v6", "linux/arm/v7", "linux/arm64/v8", "linux/386", "linux/ppc64le", "linux/amd64"] + platform: ["linux/arm/v6", "linux/arm/v7", "linux/arm64/v8", "linux/386", "linux/ppc64le", "linux/amd64", "linux/riscv64"] steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 # https://github.com/docker/setup-qemu-action - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Build docker image run: make docker-build env: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1359cb9..5b0499c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,6 +7,9 @@ on: release: types: [released] +env: + HUB_TOOL_VERSION: 0.4.6 + jobs: build-image: runs-on: ubuntu-latest @@ -21,17 +24,18 @@ jobs: - { platform: "linux/386", internal-tag: "386" } - { platform: "linux/ppc64le", internal-tag: "ppc64le" } - { platform: "linux/amd64", internal-tag: "amd64" } + - { platform: "linux/riscv64", internal-tag: "riscv64" } steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 # https://github.com/docker/setup-qemu-action - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: docker.io username: ${{ secrets.DOCKER_REPOSITORY_LOGIN }} @@ -56,7 +60,7 @@ jobs: name: Create the image manifest steps: - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: docker.io username: ${{ secrets.DOCKER_REPOSITORY_LOGIN }} @@ -69,7 +73,9 @@ jobs: docker.io/botsudo/docker-rustpython:arm64v8-latest \ docker.io/botsudo/docker-rustpython:386-latest \ docker.io/botsudo/docker-rustpython:ppc64le-latest \ - docker.io/botsudo/docker-rustpython:amd64-latest + docker.io/botsudo/docker-rustpython:amd64-latest \ + docker.io/botsudo/docker-rustpython:riscv64-latest \ + --amend - name: Push the manifest run: docker manifest push docker.io/botsudo/docker-rustpython:latest - name: Inspect the manifest @@ -81,7 +87,7 @@ jobs: steps: - name: Install Docker hub-tool run: | - curl -sL https://github.com/docker/hub-tool/releases/download/v0.4.5/hub-tool-linux-amd64.tar.gz -o hub-tool-linux.tar.gz + curl -sL https://github.com/docker/hub-tool/releases/download/v${{ env.HUB_TOOL_VERSION }}/hub-tool-linux-amd64.tar.gz -o hub-tool-linux.tar.gz tar --strip-components=1 -xzf ./hub-tool-linux.tar.gz ./hub-tool --version - name: Login hub-tool @@ -100,7 +106,7 @@ jobs: env: DOCKER_USERNAME: ${{ secrets.DOCKER_REPOSITORY_LOGIN }} DOCKER_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }} - - name: Remove PR container image via hub-tool + - name: Remove the temporary images via hub-tool run: | ./hub-tool tag rm --verbose --force docker.io/botsudo/docker-rustpython:armv6-latest || true ./hub-tool tag rm --verbose --force docker.io/botsudo/docker-rustpython:armv7-latest || true @@ -108,6 +114,7 @@ jobs: ./hub-tool tag rm --verbose --force docker.io/botsudo/docker-rustpython:386-latest || true ./hub-tool tag rm --verbose --force docker.io/botsudo/docker-rustpython:ppc64le-latest || true ./hub-tool tag rm --verbose --force docker.io/botsudo/docker-rustpython:amd64-latest || true + ./hub-tool tag rm --verbose --force docker.io/botsudo/docker-rustpython:riscv64-latest || true ./hub-tool tag ls --verbose docker.io/botsudo/docker-rustpython - name: Logout hub-tool if: always() diff --git a/README.md b/README.md index 4d12ae0..8ff122a 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ We support as much as possible, the list is: - `linux/arm/v7` - `linux/arm64/v8` - `linux/ppc64le` +- `linux/riscv64` For `linux/s390x`, it needs fixing: - See: https://github.com/nix-rust/nix/issues/1968 diff --git a/docker/Dockerfile b/docker/Dockerfile index f423f52..000fc8e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,8 +1,8 @@ -FROM alpine:3.18 as builder +FROM alpine:3.23 as builder WORKDIR /workdir -ARG RUST_PYTHON_VERSION="0.3.0" +ARG RUST_PYTHON_VERSION="2025-11-10-main-55" ARG BUILD_DATE ARG VCS_REF @@ -26,7 +26,7 @@ RUN cargo fetch RUN cargo build --features freeze-stdlib --release --locked --offline --bin rustpython -FROM alpine:3.18 +FROM alpine:3.23 RUN apk --no-cache add musl libgcc