Skip to content

Commit efd052f

Browse files
authored
Merge pull request #175 from Muscraft/add-nightly
feat: Add publishing of nightly Rust versions
2 parents 5833d73 + 2f3e421 commit efd052f

File tree

10 files changed

+441
-34
lines changed

10 files changed

+441
-34
lines changed

.github/workflows/nightly.yml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
name: Nightly Publish
2+
3+
permissions:
4+
contents: read
5+
6+
on:
7+
push:
8+
branches:
9+
- master
10+
pull_request:
11+
branches:
12+
- master
13+
schedule:
14+
- cron: '0 0 * * *'
15+
16+
jobs:
17+
build:
18+
runs-on: ubuntu-latest
19+
strategy:
20+
matrix:
21+
include:
22+
#VERSIONS
23+
- name: buster
24+
context: nightly/buster
25+
platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/386
26+
tags: |
27+
nightly-buster
28+
- name: slim-buster
29+
context: nightly/buster/slim
30+
platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/386
31+
tags: |
32+
nightly-buster-slim
33+
- name: bullseye
34+
context: nightly/bullseye
35+
platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le
36+
tags: |
37+
nightly-bullseye
38+
- name: slim-bullseye
39+
context: nightly/bullseye/slim
40+
platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le
41+
tags: |
42+
nightly-bullseye-slim
43+
- name: bookworm
44+
context: nightly/bookworm
45+
platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le
46+
tags: |
47+
nightly-bookworm
48+
nightly
49+
- name: slim-bookworm
50+
context: nightly/bookworm/slim
51+
platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le
52+
tags: |
53+
nightly-bookworm-slim
54+
nightly-slim
55+
- name: alpine3.18
56+
context: nightly/alpine3.18
57+
platforms: linux/amd64,linux/arm64
58+
tags: |
59+
nightly-alpine3.18
60+
- name: alpine3.19
61+
context: nightly/alpine3.19
62+
platforms: linux/amd64,linux/arm64
63+
tags: |
64+
nightly-alpine3.19
65+
nightly-alpine
66+
#VERSIONS
67+
name: ${{ matrix.name }}
68+
steps:
69+
- uses: actions/checkout@v4
70+
- uses: docker/setup-qemu-action@v3
71+
- uses: docker/setup-buildx-action@v3
72+
# - uses: docker/login-action@v3
73+
# if: github.event_name != 'pull_request'
74+
# with:
75+
# registry: ghcr.io
76+
# username: ${{ github.actor }}
77+
# password: ${{ secrets.GITHUB_TOKEN }}
78+
79+
- uses: docker/login-action@v3
80+
if: github.event_name != 'pull_request'
81+
with:
82+
username: rustopsbot
83+
password: ${{ secrets.DOCKER_HUB_TOKEN }}
84+
85+
- id: meta
86+
uses: docker/metadata-action@v5
87+
with:
88+
images: |
89+
rustlang/rust
90+
# ghcr.io/rust-lang/rust
91+
tags: ${{ matrix.tags }}
92+
93+
- uses: docker/build-push-action@v5
94+
with:
95+
context: ${{ matrix.context }}
96+
platforms: ${{ matrix.platforms }}
97+
push: ${{ github.event_name != 'pull_request' }}
98+
tags: ${{ steps.meta.outputs.tags }}
99+
labels: ${{ steps.meta.outputs.labels }}

nightly/alpine3.18/Dockerfile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM alpine:3.18
2+
3+
RUN apk add --no-cache \
4+
ca-certificates \
5+
gcc
6+
7+
ENV RUSTUP_HOME=/usr/local/rustup \
8+
CARGO_HOME=/usr/local/cargo \
9+
PATH=/usr/local/cargo/bin:$PATH \
10+
RUST_VERSION=nightly
11+
12+
RUN set -eux; \
13+
apkArch="$(apk --print-arch)"; \
14+
case "$apkArch" in \
15+
x86_64) rustArch='x86_64-unknown-linux-musl'; rustupSha256='7aa9e2a380a9958fc1fc426a3323209b2c86181c6816640979580f62ff7d48d4' ;; \
16+
aarch64) rustArch='aarch64-unknown-linux-musl'; rustupSha256='b1962dfc18e1fd47d01341e6897cace67cddfabf547ef394e8883939bd6e002e' ;; \
17+
*) echo >&2 "unsupported architecture: $apkArch"; exit 1 ;; \
18+
esac; \
19+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
20+
wget "$url"; \
21+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
22+
chmod +x rustup-init; \
23+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
24+
rm rustup-init; \
25+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
26+
rustup --version; \
27+
cargo --version; \
28+
rustc --version;

nightly/alpine3.19/Dockerfile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM alpine:3.19
2+
3+
RUN apk add --no-cache \
4+
ca-certificates \
5+
gcc
6+
7+
ENV RUSTUP_HOME=/usr/local/rustup \
8+
CARGO_HOME=/usr/local/cargo \
9+
PATH=/usr/local/cargo/bin:$PATH \
10+
RUST_VERSION=nightly
11+
12+
RUN set -eux; \
13+
apkArch="$(apk --print-arch)"; \
14+
case "$apkArch" in \
15+
x86_64) rustArch='x86_64-unknown-linux-musl'; rustupSha256='7aa9e2a380a9958fc1fc426a3323209b2c86181c6816640979580f62ff7d48d4' ;; \
16+
aarch64) rustArch='aarch64-unknown-linux-musl'; rustupSha256='b1962dfc18e1fd47d01341e6897cace67cddfabf547ef394e8883939bd6e002e' ;; \
17+
*) echo >&2 "unsupported architecture: $apkArch"; exit 1 ;; \
18+
esac; \
19+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
20+
wget "$url"; \
21+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
22+
chmod +x rustup-init; \
23+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
24+
rm rustup-init; \
25+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
26+
rustup --version; \
27+
cargo --version; \
28+
rustc --version;

nightly/bookworm/Dockerfile

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
FROM buildpack-deps:bookworm
2+
3+
ENV RUSTUP_HOME=/usr/local/rustup \
4+
CARGO_HOME=/usr/local/cargo \
5+
PATH=/usr/local/cargo/bin:$PATH \
6+
RUST_VERSION=nightly
7+
8+
RUN set -eux; \
9+
dpkgArch="$(dpkg --print-architecture)"; \
10+
case "${dpkgArch##*-}" in \
11+
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db' ;; \
12+
armhf) rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='f21c44b01678c645d8fbba1e55e4180a01ac5af2d38bcbd14aa665e0d96ed69a' ;; \
13+
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800' ;; \
14+
i386) rustArch='i686-unknown-linux-gnu'; rustupSha256='e7b0f47557c1afcd86939b118cbcf7fb95a5d1d917bdd355157b63ca00fc4333' ;; \
15+
ppc64el) rustArch='powerpc64le-unknown-linux-gnu'; rustupSha256='1032934fb154ad2d365e02dcf770c6ecfaec6ab2987204c618c21ba841c97b44' ;; \
16+
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
17+
esac; \
18+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
19+
wget "$url"; \
20+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
21+
chmod +x rustup-init; \
22+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
23+
rm rustup-init; \
24+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
25+
rustup --version; \
26+
cargo --version; \
27+
rustc --version;

nightly/bookworm/slim/Dockerfile

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
FROM debian:bookworm-slim
2+
3+
ENV RUSTUP_HOME=/usr/local/rustup \
4+
CARGO_HOME=/usr/local/cargo \
5+
PATH=/usr/local/cargo/bin:$PATH \
6+
RUST_VERSION=nightly
7+
8+
RUN set -eux; \
9+
apt-get update; \
10+
apt-get install -y --no-install-recommends \
11+
ca-certificates \
12+
gcc \
13+
libc6-dev \
14+
wget \
15+
; \
16+
dpkgArch="$(dpkg --print-architecture)"; \
17+
case "${dpkgArch##*-}" in \
18+
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db' ;; \
19+
armhf) rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='f21c44b01678c645d8fbba1e55e4180a01ac5af2d38bcbd14aa665e0d96ed69a' ;; \
20+
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800' ;; \
21+
i386) rustArch='i686-unknown-linux-gnu'; rustupSha256='e7b0f47557c1afcd86939b118cbcf7fb95a5d1d917bdd355157b63ca00fc4333' ;; \
22+
ppc64el) rustArch='powerpc64le-unknown-linux-gnu'; rustupSha256='1032934fb154ad2d365e02dcf770c6ecfaec6ab2987204c618c21ba841c97b44' ;; \
23+
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
24+
esac; \
25+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
26+
wget "$url"; \
27+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
28+
chmod +x rustup-init; \
29+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
30+
rm rustup-init; \
31+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
32+
rustup --version; \
33+
cargo --version; \
34+
rustc --version; \
35+
apt-get remove -y --auto-remove \
36+
wget \
37+
; \
38+
rm -rf /var/lib/apt/lists/*;

nightly/bullseye/Dockerfile

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
FROM buildpack-deps:bullseye
2+
3+
ENV RUSTUP_HOME=/usr/local/rustup \
4+
CARGO_HOME=/usr/local/cargo \
5+
PATH=/usr/local/cargo/bin:$PATH \
6+
RUST_VERSION=nightly
7+
8+
RUN set -eux; \
9+
dpkgArch="$(dpkg --print-architecture)"; \
10+
case "${dpkgArch##*-}" in \
11+
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db' ;; \
12+
armhf) rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='f21c44b01678c645d8fbba1e55e4180a01ac5af2d38bcbd14aa665e0d96ed69a' ;; \
13+
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800' ;; \
14+
i386) rustArch='i686-unknown-linux-gnu'; rustupSha256='e7b0f47557c1afcd86939b118cbcf7fb95a5d1d917bdd355157b63ca00fc4333' ;; \
15+
ppc64el) rustArch='powerpc64le-unknown-linux-gnu'; rustupSha256='1032934fb154ad2d365e02dcf770c6ecfaec6ab2987204c618c21ba841c97b44' ;; \
16+
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
17+
esac; \
18+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
19+
wget "$url"; \
20+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
21+
chmod +x rustup-init; \
22+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
23+
rm rustup-init; \
24+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
25+
rustup --version; \
26+
cargo --version; \
27+
rustc --version;

nightly/bullseye/slim/Dockerfile

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
FROM debian:bullseye-slim
2+
3+
ENV RUSTUP_HOME=/usr/local/rustup \
4+
CARGO_HOME=/usr/local/cargo \
5+
PATH=/usr/local/cargo/bin:$PATH \
6+
RUST_VERSION=nightly
7+
8+
RUN set -eux; \
9+
apt-get update; \
10+
apt-get install -y --no-install-recommends \
11+
ca-certificates \
12+
gcc \
13+
libc6-dev \
14+
wget \
15+
; \
16+
dpkgArch="$(dpkg --print-architecture)"; \
17+
case "${dpkgArch##*-}" in \
18+
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db' ;; \
19+
armhf) rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='f21c44b01678c645d8fbba1e55e4180a01ac5af2d38bcbd14aa665e0d96ed69a' ;; \
20+
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800' ;; \
21+
i386) rustArch='i686-unknown-linux-gnu'; rustupSha256='e7b0f47557c1afcd86939b118cbcf7fb95a5d1d917bdd355157b63ca00fc4333' ;; \
22+
ppc64el) rustArch='powerpc64le-unknown-linux-gnu'; rustupSha256='1032934fb154ad2d365e02dcf770c6ecfaec6ab2987204c618c21ba841c97b44' ;; \
23+
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
24+
esac; \
25+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
26+
wget "$url"; \
27+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
28+
chmod +x rustup-init; \
29+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
30+
rm rustup-init; \
31+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
32+
rustup --version; \
33+
cargo --version; \
34+
rustc --version; \
35+
apt-get remove -y --auto-remove \
36+
wget \
37+
; \
38+
rm -rf /var/lib/apt/lists/*;

nightly/buster/Dockerfile

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
FROM buildpack-deps:buster
2+
3+
ENV RUSTUP_HOME=/usr/local/rustup \
4+
CARGO_HOME=/usr/local/cargo \
5+
PATH=/usr/local/cargo/bin:$PATH \
6+
RUST_VERSION=nightly
7+
8+
RUN set -eux; \
9+
dpkgArch="$(dpkg --print-architecture)"; \
10+
case "${dpkgArch##*-}" in \
11+
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db' ;; \
12+
armhf) rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='f21c44b01678c645d8fbba1e55e4180a01ac5af2d38bcbd14aa665e0d96ed69a' ;; \
13+
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800' ;; \
14+
i386) rustArch='i686-unknown-linux-gnu'; rustupSha256='e7b0f47557c1afcd86939b118cbcf7fb95a5d1d917bdd355157b63ca00fc4333' ;; \
15+
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
16+
esac; \
17+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
18+
wget "$url"; \
19+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
20+
chmod +x rustup-init; \
21+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
22+
rm rustup-init; \
23+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
24+
rustup --version; \
25+
cargo --version; \
26+
rustc --version;

nightly/buster/slim/Dockerfile

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
FROM debian:buster-slim
2+
3+
ENV RUSTUP_HOME=/usr/local/rustup \
4+
CARGO_HOME=/usr/local/cargo \
5+
PATH=/usr/local/cargo/bin:$PATH \
6+
RUST_VERSION=nightly
7+
8+
RUN set -eux; \
9+
apt-get update; \
10+
apt-get install -y --no-install-recommends \
11+
ca-certificates \
12+
gcc \
13+
libc6-dev \
14+
wget \
15+
; \
16+
dpkgArch="$(dpkg --print-architecture)"; \
17+
case "${dpkgArch##*-}" in \
18+
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db' ;; \
19+
armhf) rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='f21c44b01678c645d8fbba1e55e4180a01ac5af2d38bcbd14aa665e0d96ed69a' ;; \
20+
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800' ;; \
21+
i386) rustArch='i686-unknown-linux-gnu'; rustupSha256='e7b0f47557c1afcd86939b118cbcf7fb95a5d1d917bdd355157b63ca00fc4333' ;; \
22+
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
23+
esac; \
24+
url="https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init"; \
25+
wget "$url"; \
26+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
27+
chmod +x rustup-init; \
28+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
29+
rm rustup-init; \
30+
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
31+
rustup --version; \
32+
cargo --version; \
33+
rustc --version; \
34+
apt-get remove -y --auto-remove \
35+
wget \
36+
; \
37+
rm -rf /var/lib/apt/lists/*;

0 commit comments

Comments
 (0)