Skip to content

Commit 226b807

Browse files
committed
Refactor Dockerfiles into base images.
1 parent 5261b6a commit 226b807

File tree

59 files changed

+196
-574
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+196
-574
lines changed

.github/workflows/ci.yml

+88-1
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,97 @@ jobs:
109109
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
110110
COMMIT_AUTHOR: ${{ github.event.head_commit.author.username }}
111111

112+
build-base:
113+
name: base (${{ matrix.pretty }},${{ matrix.os }})
114+
runs-on: ubuntu-latest
115+
needs: [shellcheck, test, check]
116+
if: github.event_name == 'push'
117+
strategy:
118+
fail-fast: false
119+
matrix:
120+
image:
121+
- ubuntu
122+
- centos
123+
- emscripten
124+
outputs:
125+
images: ${{ steps.build-docker-image.outputs.images && fromJSON(steps.build-docker-image.outputs.images) }}
126+
coverage-artifact: ${{ steps.cov.outputs.artifact-name }}
127+
steps:
128+
- uses: actions/checkout@v3
129+
130+
- uses: ./.github/actions/setup-rust
131+
132+
- name: Set up Docker Buildx
133+
if: runner.os == 'Linux'
134+
uses: docker/setup-buildx-action@v1
135+
136+
- name: Build xtask
137+
run: cargo build -p xtask
138+
139+
- name: Prepare Meta
140+
id: prepare-meta
141+
timeout-minutes: 60
142+
run: cargo xtask ci-job prepare-meta "${IMAGE}"
143+
env:
144+
IMAGE: ${{ matrix.image }}
145+
shell: bash
146+
147+
- name: LLVM instrument coverage
148+
uses: ./.github/actions/cargo-llvm-cov
149+
with:
150+
name: cross-${{matrix.image}}
151+
152+
- name: Install cross
153+
if: matrix.deploy
154+
run: cargo install --path . --force --debug
155+
156+
- name: Docker Meta
157+
id: docker-meta
158+
uses: docker/metadata-action@v4
159+
with:
160+
images: |
161+
name=${{ steps.prepare-meta.outputs.image }}
162+
labels: |
163+
${{ fromJSON(steps.prepare-meta.outputs.labels) }}
164+
- name: Build Docker image
165+
id: build-docker-image
166+
timeout-minutes: 60
167+
run: cargo xtask build-docker-image -v "${IMAGE}"
168+
env:
169+
IMAGE: ${{ matrix.image }}
170+
LABELS: ${{ steps.docker-meta.outputs.labels }}
171+
LATEST: ${{ needs.check.outputs.is-latest || 'false' }}
172+
shell: bash
173+
174+
- uses: ./.github/actions/cargo-install-upload-artifacts
175+
if: matrix.deploy
176+
with:
177+
target: ${{ matrix.image }}
178+
image: ${{ steps.build-docker-image.outputs.image }}
179+
180+
- name: Login to GitHub Container Registry
181+
uses: docker/login-action@v1
182+
with:
183+
registry: ghcr.io
184+
username: ${{ github.actor }}
185+
password: ${{ secrets.GITHUB_TOKEN }}
186+
- name: Push image to GitHub Container Registry
187+
if: >
188+
(
189+
github.ref == format('refs/heads/{0}', github.event.repository.default_branch) ||
190+
startsWith(github.ref, 'refs/tags/v')
191+
)
192+
run: cargo xtask build-docker-image -v --push "${IMAGE}"
193+
env:
194+
IMAGE: ${{ matrix.target }}
195+
LABELS: ${{ steps.docker-meta.outputs.labels }}
196+
LATEST: ${{ needs.check.outputs.is-latest || 'false' }}
197+
shell: bash
198+
112199
build:
113200
name: target (${{ matrix.pretty }},${{ matrix.os }})
114201
runs-on: ${{ matrix.os }}
115-
needs: [shellcheck, test, generate-matrix, check]
202+
needs: [shellcheck, test, generate-matrix, check, build-base]
116203
if: github.event_name == 'push'
117204
strategy:
118205
fail-fast: false

docker/Dockerfile.aarch64-linux-android

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY android-ndk.sh /
145
RUN /android-ndk.sh arm64 28
156
ENV PATH=$PATH:/android-ndk/bin

docker/Dockerfile.aarch64-unknown-linux-gnu

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
145
g++-aarch64-linux-gnu \
156
libc6-dev-arm64-cross

docker/Dockerfile.aarch64-unknown-linux-musl

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY qemu.sh /
145
RUN /qemu.sh aarch64
156

docker/Dockerfile.arm-linux-androideabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY android-ndk.sh /
145
RUN /android-ndk.sh arm 28
156
ENV PATH=$PATH:/android-ndk/bin

docker/Dockerfile.arm-unknown-linux-gnueabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
145
g++-arm-linux-gnueabi \
156
libc6-dev-armel-cross

docker/Dockerfile.arm-unknown-linux-gnueabihf

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
ARG VERBOSE
145
COPY crosstool-ng.sh /
156
COPY crosstool-config/arm-unknown-linux-gnueabihf.config /

docker/Dockerfile.arm-unknown-linux-musleabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY qemu.sh /
145
RUN /qemu.sh arm
156

docker/Dockerfile.arm-unknown-linux-musleabihf

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY qemu.sh /
145
RUN /qemu.sh arm
156

docker/Dockerfile.armv5te-unknown-linux-gnueabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
145
g++-arm-linux-gnueabi \
156
crossbuild-essential-armel \

docker/Dockerfile.armv5te-unknown-linux-musleabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY qemu.sh /
145
RUN /qemu.sh arm
156

docker/Dockerfile.armv7-linux-androideabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY android-ndk.sh /
145
RUN /android-ndk.sh arm 28
156
ENV PATH=$PATH:/android-ndk/bin

docker/Dockerfile.armv7-unknown-linux-gnueabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
RUN apt-get install --assume-yes --no-install-recommends \
145
g++-arm-linux-gnueabi \
156
libc6-dev-armel-cross

docker/Dockerfile.armv7-unknown-linux-gnueabihf

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
145
g++-arm-linux-gnueabihf \
156
libc6-dev-armhf-cross

docker/Dockerfile.armv7-unknown-linux-musleabi

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY qemu.sh /
145
RUN /qemu.sh arm
156

docker/Dockerfile.armv7-unknown-linux-musleabihf

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
COPY qemu.sh /
145
RUN /qemu.sh arm
156

docker/Dockerfile.centos

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM centos:7
2+
3+
COPY common.sh lib.sh /
4+
RUN /common.sh
5+
6+
COPY cmake.sh /
7+
RUN /cmake.sh
8+
9+
COPY xargo.sh /
10+
RUN /xargo.sh

docker/Dockerfile.emscripten

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM emscripten/emsdk:3.1.14
2+
WORKDIR /
3+
ARG DEBIAN_FRONTEND=noninteractive
4+
5+
COPY common.sh lib.sh /
6+
RUN /common.sh
7+
8+
COPY cmake.sh /
9+
RUN /cmake.sh
10+
11+
COPY xargo.sh /
12+
RUN /xargo.sh

docker/Dockerfile.i586-unknown-linux-gnu

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
1-
FROM ubuntu:20.04
1+
FROM ghcr.io/cross-rs/ubuntu:main
22
ARG DEBIAN_FRONTEND=noninteractive
33

4-
COPY common.sh lib.sh /
5-
RUN /common.sh
6-
7-
COPY cmake.sh /
8-
RUN /cmake.sh
9-
10-
COPY xargo.sh /
11-
RUN /xargo.sh
12-
134
RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
145
g++-i686-linux-gnu \
156
libc6-dev-i386-cross

0 commit comments

Comments
 (0)