Skip to content

Commit 3b49e30

Browse files
committed
Move to Almalinux
1 parent ff0ba06 commit 3b49e30

File tree

3 files changed

+82
-64
lines changed

3 files changed

+82
-64
lines changed

.github/workflows/container-release.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,24 @@ name: Container Release
22
on:
33
push:
44
paths:
5+
- bin/wally-tool-chain-install.sh
6+
- bin/wally-environment-check.sh
7+
- bin/wally-package-install.sh
8+
- bin/installation/**
59
- containers/wally-devel/**
610
- .github/workflows/container-release.yml # Self-trigger
711
workflow_dispatch:
812
inputs:
913
publish:
1014
description: "Publish to the container registry"
1115
required: false
12-
default: true
16+
default: false
1317
type: boolean
1418

1519
env:
1620
REGISTRY: ghcr.io/doganulus
1721
IMAGE_NAME: wally
18-
PODMAN_ARCH: amd64
22+
HOSTARCH: amd64
1923
PLATFORM: linux-amd64
2024
CONTAINER_VERSION: latest
2125
CONTAINER_LATEST_VERSION: latest
@@ -42,7 +46,7 @@ jobs:
4246

4347
- name: Prepare environment variables
4448
run: |
45-
echo "PODMAN_ARCH=$(podman info --format='{{.Host.Arch}}')" >> $GITHUB_ENV
49+
echo "HOSTARCH=$(podman info --format='{{.Host.Arch}}')" >> $GITHUB_ENV
4650
echo "PLATFORM=$(podman info --format='{{.Version.OsArch}}' | sed 's/\//-/g')" >> $GITHUB_ENV
4751
echo "CONTAINER_VERSION=$(date +'%Y%m%d')" >> $GITHUB_ENV
4852
@@ -64,7 +68,7 @@ jobs:
6468
image: wally
6569
tags: |
6670
${{ env.CONTAINER_VERSION }}-builder
67-
${{ env.CONTAINER_VERSION }}-builder-${{ env.PODMAN_ARCH }}
71+
${{ env.CONTAINER_VERSION }}-builder-${{ env.HOSTARCH }}
6872
layers: true
6973
oci: true
7074
build-args: |
@@ -81,7 +85,7 @@ jobs:
8185
with:
8286
context: .
8387
image: wally
84-
tags: ${{ env.CONTAINER_VERSION }}-devel ${{ env.CONTAINER_VERSION }}-devel-${{ env.PODMAN_ARCH }}
88+
tags: ${{ env.CONTAINER_VERSION }}-devel ${{ env.CONTAINER_VERSION }}-devel-${{ env.HOSTARCH }}
8589
layers: true
8690
oci: true
8791
build-args: |
@@ -99,7 +103,7 @@ jobs:
99103
with:
100104
registry: ${{ env.REGISTRY }}
101105
image: ${{ steps.build-builder.outputs.image }}
102-
tags: ${{ env.CONTAINER_VERSION }}-builder-${{ env.PODMAN_ARCH }}
106+
tags: ${{ env.CONTAINER_VERSION }}-builder-${{ env.HOSTARCH }}
103107
digestfile: ${{ runner.temp }}/digest-wally-builder-${{ env.CONTAINER_VERSION }}-${{ env.PLATFORM }}
104108

105109
- name: Push to GitHub Container Repository
@@ -109,7 +113,7 @@ jobs:
109113
with:
110114
registry: ${{ env.REGISTRY }}
111115
image: ${{ steps.build-devel.outputs.image }}
112-
tags: ${{ env.CONTAINER_VERSION }}-devel-${{ env.PODMAN_ARCH }}
116+
tags: ${{ env.CONTAINER_VERSION }}-devel-${{ env.HOSTARCH }}
113117
digestfile: ${{ runner.temp }}/digest-wally-devel-${{ env.CONTAINER_VERSION }}-${{ env.PLATFORM }}
114118

115119
- name: Upload digests

containers/Makefile

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,40 @@
1-
CONTAINER_IMAGE_REGISTRY ?= localhost
2-
CONTAINER_IMAGE_REGISTRY_REMOTE ?= ghcr.io/openhwgroup
3-
CONTAINER_IMAGE_NAME ?= wally
4-
CONTAINER_TARGET_VERSION ?= latest
5-
CONTAINER_CURRENT_VERSION ?= $(shell date +'%Y%m%d')
1+
WALLY_CONTAINER_BASE_IMAGE ?= docker.io/almalinux/9-base:9.6
2+
WALLY_CONTAINER_IMAGE_REGISTRY ?= localhost
3+
WALLY_CONTAINER_IMAGE_REGISTRY_REMOTE ?= ghcr.io/openhwgroup
4+
WALLY_CONTAINER_IMAGE_NAME ?= wally
5+
WALLY_CONTAINER_TARGET_VERSION ?= latest
6+
WALLY_CONTAINER_CURRENT_VERSION ?= $(shell date +'%Y%m%d')
67

7-
CONTAINER_BUILD_CONTEXT ?= .. # Fix if installation scripts are in a different location
8+
WALLY_CONTAINER_BUILD_CONTEXT ?= .. # Set to the project root
89

910
info:
10-
@echo "Container version: ${CONTAINER_TARGET_VERSION}"
11-
@echo "Container current version: ${CONTAINER_CURRENT_VERSION}"
11+
@echo "Container version: ${WALLY_CONTAINER_TARGET_VERSION}"
12+
@echo "Container current version: ${WALLY_CONTAINER_CURRENT_VERSION}"
1213

1314
builder:
1415
buildah build \
1516
-f wally-devel/Dockerfile \
16-
--build-arg CONTAINER_IMAGE_REGISTRY=${CONTAINER_IMAGE_REGISTRY} \
17-
--build-arg CONTAINER_IMAGE_REGISTRY_REMOTE=${CONTAINER_IMAGE_REGISTRY_REMOTE} \
18-
--build-arg CONTAINER_IMAGE_NAME=${CONTAINER_IMAGE_NAME} \
19-
--build-arg CONTAINER_VERSION=${CONTAINER_CURRENT_VERSION} \
17+
--build-arg WALLY_CONTAINER_BASE_IMAGE=${WALLY_CONTAINER_BASE_IMAGE} \
18+
--build-arg WALLY_CONTAINER_VERSION=${WALLY_CONTAINER_CURRENT_VERSION} \
2019
--format oci \
2120
--layers=true \
2221
--target wally-builder \
23-
--tag ${CONTAINER_IMAGE_REGISTRY}/${CONTAINER_IMAGE_NAME}:${CONTAINER_TARGET_VERSION}-builder \
24-
--tag ${CONTAINER_IMAGE_REGISTRY}/${CONTAINER_IMAGE_NAME}:${CONTAINER_CURRENT_VERSION}-builder \
25-
--tag ${CONTAINER_IMAGE_REGISTRY_REMOTE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_TARGET_VERSION}-builder \
26-
--tag ${CONTAINER_IMAGE_REGISTRY_REMOTE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_CURRENT_VERSION}-builder \
27-
${CONTAINER_BUILD_CONTEXT}
22+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_TARGET_VERSION}-builder \
23+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_CURRENT_VERSION}-builder \
24+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY_REMOTE}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_TARGET_VERSION}-builder \
25+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY_REMOTE}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_CURRENT_VERSION}-builder \
26+
${WALLY_CONTAINER_BUILD_CONTEXT}
2827

2928
devel: builder
3029
buildah build \
3130
-f wally-devel/Dockerfile \
32-
--build-arg CONTAINER_IMAGE_REGISTRY=${CONTAINER_IMAGE_REGISTRY} \
33-
--build-arg CONTAINER_IMAGE_REGISTRY_REMOTE=${CONTAINER_IMAGE_REGISTRY_REMOTE} \
34-
--build-arg CONTAINER_IMAGE_NAME=${CONTAINER_IMAGE_NAME} \
35-
--build-arg CONTAINER_VERSION=${CONTAINER_CURRENT_VERSION} \
31+
--build-arg WALLY_CONTAINER_BASE_IMAGE=${WALLY_CONTAINER_BASE_IMAGE} \
32+
--build-arg WALLY_CONTAINER_VERSION=${WALLY_CONTAINER_CURRENT_VERSION} \
3633
--format oci \
3734
--layers=true \
3835
--target wally-devel \
39-
--tag ${CONTAINER_IMAGE_REGISTRY}/${CONTAINER_IMAGE_NAME}:${CONTAINER_TARGET_VERSION}-devel \
40-
--tag ${CONTAINER_IMAGE_REGISTRY}/${CONTAINER_IMAGE_NAME}:${CONTAINER_CURRENT_VERSION}-devel \
41-
--tag ${CONTAINER_IMAGE_REGISTRY_REMOTE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_TARGET_VERSION}-devel \
42-
--tag ${CONTAINER_IMAGE_REGISTRY_REMOTE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_CURRENT_VERSION}-devel \
43-
${CONTAINER_BUILD_CONTEXT}
36+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_TARGET_VERSION}-devel \
37+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_CURRENT_VERSION}-devel \
38+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY_REMOTE}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_TARGET_VERSION}-devel \
39+
--tag ${WALLY_CONTAINER_IMAGE_REGISTRY_REMOTE}/${WALLY_CONTAINER_IMAGE_NAME}:${WALLY_CONTAINER_CURRENT_VERSION}-devel \
40+
${WALLY_CONTAINER_BUILD_CONTEXT}

containers/wally-devel/Dockerfile

Lines changed: 48 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,51 @@
1-
ARG CONTAINER_VERSION=latest
2-
ARG CONTAINER_BASE_IMAGE=docker.io/library/debian:12
3-
4-
ARG CONTAINER_IMAGE_REGISTRY=localhost
5-
ARG CONTAINER_IMAGE_REGISTRY_REMOTE=${CONTAINER_IMAGE_REGISTRY}
6-
ARG CONTAINER_IMAGE_NAME=wally
7-
ARG CONTAINER_IMAGE_NAME_FULL=${CONTAINER_IMAGE_REGISTRY}/${CONTAINER_IMAGE_NAME}
8-
ARG CONTAINER_IMAGE_VERSION=${CONTAINER_VERSION}
9-
ARG CONTAINER_BUILDER_IMAGE=${CONTAINER_IMAGE_NAME_FULL}:${CONTAINER_IMAGE_VERSION}-builder
10-
ARG CONTAINER_DEVEL_IMAGE=${CONTAINER_IMAGE_NAME_FULL}:${CONTAINER_IMAGE_VERSION}-devel
11-
12-
FROM ${CONTAINER_BASE_IMAGE} as wally-builder
1+
ARG WALLY_CONTAINER_VERSION=latest
2+
ARG WALLY_CONTAINER_BASE_IMAGE=docker.io/almalinux/9-base:9.6
3+
4+
ARG WALLY_CONTAINER_BUILDER_IMAGE=wally-builder
5+
ARG WALLY_CONTAINER_DEVEL_IMAGE=wally-devel
6+
7+
ARG RISCV_GNU_TOOLCHAIN_VERSION=23863c2ca74e6c050f0c97e7af61f5f1776aadd1
8+
9+
FROM ${WALLY_CONTAINER_BASE_IMAGE} as wally-builder
1310
ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
1411

15-
RUN --mount=type=bind,source=./bin,target=/wally/bin \
16-
bash /wally/bin/wally-package-install.sh && \
17-
apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
18-
19-
RUN --mount=type=bind,source=./bin,target=/wally/bin \
20-
export WALLY=/wally && \
21-
export RISCV=/opt/riscv && \
22-
bash "$WALLY/bin/installation/riscv-gnu-toolchain-install.sh" --clean
23-
24-
RUN --mount=type=bind,source=./bin,target=/wally/bin \
25-
export WALLY=/wally && \
26-
export RISCV=/opt/riscv && \
27-
bash "$WALLY/bin/installation/elf2hex-install.sh" --clean && \
28-
bash "$WALLY/bin/installation/qemu-install.sh" --clean && \
29-
bash "$WALLY/bin/installation/spike-install.sh" --clean && \
30-
# bash "$WALLY/bin/installation/sail-install.sh" --clean && \
31-
bash "$WALLY/bin/installation/verilator-install.sh" --clean
32-
33-
FROM wally-builder as wally-devel
12+
ARG RISCV_GNU_TOOLCHAIN_VERSION
13+
ENV RISCV_GNU_TOOLCHAIN_VERSION=${RISCV_GNU_TOOLCHAIN_VERSION}
14+
ENV RISCV_INSTALL_PREFIX=/opt/riscv
15+
16+
ENV WALLY_HOME=/root
17+
ENV WALLY_SOURCE_DIR=/workspaces/cvw
18+
ENV WALLY_PYTHON_VENV_DIR=${WALLY_HOME}/.venv/wally
19+
ENV WALLY_PYTHON_EXECUTABLE=${WALLY_PYTHON_VENV_DIR}/bin/python
20+
21+
ENV RISCV=${RISCV_INSTALL_PREFIX}
22+
ENV WALLY=${WALLY_SOURCE_DIR}
23+
24+
RUN --mount=type=bind,source=./bin,target=${WALLY_SOURCE_DIR}/bin \
25+
bash "${WALLY_SOURCE_DIR}/bin/wally-package-install.sh" --clean
26+
27+
RUN --mount=type=bind,source=./bin,target=${WALLY_SOURCE_DIR}/bin \
28+
bash "${WALLY_SOURCE_DIR}/bin/installation/riscv-gnu-toolchain-install.sh" --clean
29+
30+
RUN --mount=type=bind,source=./bin,target=${WALLY_SOURCE_DIR}/bin \
31+
--mount=type=bind,source=./linux,target=${WALLY_SOURCE_DIR}/linux \
32+
bash "${WALLY_SOURCE_DIR}/bin/wally-tool-chain-install.sh" --clean --no-buildroot
33+
34+
FROM ${WALLY_CONTAINER_BUILDER_IMAGE} as wally-devel
3435
ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
36+
37+
ENV PATH="${RISCV_INSTALL_PREFIX}/bin${PATH:+:${PATH}}"
38+
ENV CPATH="${RISCV_INSTALL_PREFIX}/include${CPATH:+:${CPATH}}"
39+
ENV LD_LIBRARY_PATH="\
40+
${RISCV_INSTALL_PREFIX}/lib\
41+
:${RISCV_INSTALL_PREFIX}/lib64\
42+
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
43+
ENV PKG_CONFIG_PATH="\
44+
${RISCV_INSTALL_PREFIX}/lib/pkgconfig\
45+
:${RISCV_INSTALL_PREFIX}/lib64/pkgconfig\
46+
:${RISCV_INSTALL_PREFIX}/share/pkgconfig\
47+
${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
48+
49+
RUN ${WALLY_PYTHON_EXECUTABLE} -m pip install --no-cache-dir \
50+
reuse \
51+
pre-commit

0 commit comments

Comments
 (0)