Skip to content

Commit 0bcd3cc

Browse files
authored
Add Docker container to host caliptra build tools (#2372)
This will be used particularly in caliptra-mcu-sw as well as local cross-compilation. Eventually we will want to separate this to an infra specific repo.
1 parent 2650379 commit 0bcd3cc

2 files changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Publish Docker Build Image
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'ci-tools/build-image/Dockerfile'
9+
workflow_dispatch:
10+
11+
jobs:
12+
# Publishes "ghcr.io/chipsalliance/caliptra-build-image".
13+
build-and-publish:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: read
17+
packages: write
18+
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v4
22+
23+
- name: Log in to the GitHub Container Registry
24+
uses: docker/login-action@v3
25+
with:
26+
registry: ghcr.io
27+
username: ${{ github.actor }}
28+
password: ${{ secrets.GITHUB_TOKEN }}
29+
30+
- name: Build and push Docker image
31+
uses: docker/build-push-action@v5
32+
with:
33+
context: ci-tools/build-image
34+
file: ci-tools/build-image/Dockerfile
35+
push: true
36+
tags: |
37+
ghcr.io/${{ github.repository_owner }}/caliptra-build-image:latest
38+
ghcr.io/${{ github.repository_owner }}/caliptra-build-image:${{ github.sha }}

ci-tools/build-image/Dockerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Licensed under the Apache-2.0 license
2+
3+
# This docker image shares a rootfs with the Caliptra FPGAs.
4+
# This image is used in various GitHub actions to cross-compile binaries targeting the FPGAs.
5+
6+
# Move dev images to debian.
7+
#FROM debian:bookworm
8+
FROM ubuntu:22.04
9+
RUN apt update && apt install gcc git curl make gcc-aarch64-linux-gnu -y
10+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=nightly-2025-02-15 --profile=complete -y
11+
ENV PATH="/root/.cargo/bin:${PATH}"
12+
RUN rustup target add riscv32imc-unknown-none-elf
13+
RUN rustup target add aarch64-unknown-linux-gnu
14+
RUN cargo install cargo-nextest
15+
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="aarch64-linux-gnu-gcc"
16+

0 commit comments

Comments
 (0)