mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-12 22:10:54 -04:00
chore: add ubuntu-22.04 CI build
This commit is contained in:
parent
21901d7c2d
commit
dff3d0f591
68
.docker/Dockerfile.ubuntu-2204
Normal file
68
.docker/Dockerfile.ubuntu-2204
Normal file
@ -0,0 +1,68 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
ARG ARCH=amd64
|
||||
FROM $ARCH/ubuntu:22.04
|
||||
RUN apt update
|
||||
RUN apt upgrade -y
|
||||
RUN apt install -y gnupg wget software-properties-common
|
||||
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
|
||||
RUN apt-add-repository 'deb https://apt.kitware.com/ubuntu/ jammy main'
|
||||
RUN apt install -y \
|
||||
bash-completion \
|
||||
vim \
|
||||
less
|
||||
RUN apt install -y \
|
||||
gcc-12 \
|
||||
g++-12 \
|
||||
clang-15 \
|
||||
git \
|
||||
zstd \
|
||||
ccache \
|
||||
ninja-build \
|
||||
cmake \
|
||||
make \
|
||||
bison \
|
||||
flex \
|
||||
ronn \
|
||||
fuse3 \
|
||||
pkg-config \
|
||||
binutils-dev \
|
||||
libacl1-dev \
|
||||
libarchive-dev \
|
||||
libbenchmark-dev \
|
||||
libboost-chrono-dev \
|
||||
libboost-context-dev \
|
||||
libboost-filesystem-dev \
|
||||
libboost-iostreams-dev \
|
||||
libboost-program-options-dev \
|
||||
libboost-regex-dev \
|
||||
libboost-system-dev \
|
||||
libboost-thread-dev \
|
||||
libbrotli-dev \
|
||||
libevent-dev \
|
||||
libhowardhinnant-date-dev \
|
||||
libjemalloc-dev \
|
||||
libdouble-conversion-dev \
|
||||
libiberty-dev \
|
||||
liblz4-dev \
|
||||
liblzma-dev \
|
||||
libmagic-dev \
|
||||
libssl-dev \
|
||||
libunwind-dev \
|
||||
libdwarf-dev \
|
||||
libelf-dev \
|
||||
libfmt-dev \
|
||||
libfuse-dev \
|
||||
libfuse3-dev \
|
||||
libgoogle-glog-dev \
|
||||
libutfcpp-dev \
|
||||
libflac++-dev \
|
||||
python3-mistletoe
|
||||
ARG ARCH
|
||||
# current ronn version is horribly broken
|
||||
RUN gem install ronn-ng
|
||||
RUN useradd -g users -u 1000 -m mhx
|
||||
ARG SCRIPT=build-linux.sh
|
||||
COPY $SCRIPT /usr/local/bin/run.sh
|
||||
RUN chmod +x /usr/local/bin/run.sh
|
||||
USER mhx
|
||||
ENTRYPOINT /usr/local/bin/run.sh
|
@ -1,48 +1,43 @@
|
||||
IMAGE_UBUNTU="dwarfs-buildenv"
|
||||
IMAGE_UBUNTU2204="dwarfs-buildenv-ubuntu2204"
|
||||
IMAGE_FEDORA="dwarfs-buildenv-fedora"
|
||||
IMAGE_ARCH="dwarfs-buildenv-arch"
|
||||
|
||||
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
NPROC:=$(shell nproc)
|
||||
|
||||
COMMON_RUN_OPTS=-it --rm \
|
||||
--cap-add SYS_ADMIN --device /dev/fuse --privileged \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/..,target=/workspace,readonly \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-ccache,target=/ccache \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-home,target=/home/mhx \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-build,target=/home/mhx/build \
|
||||
--env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \
|
||||
--entrypoint /bin/bash
|
||||
|
||||
build:
|
||||
docker build -t $(IMAGE_UBUNTU) .
|
||||
|
||||
run:
|
||||
@docker run $(COMMON_RUN_OPTS) $(IMAGE_UBUNTU)
|
||||
|
||||
build_arm:
|
||||
docker build -f Dockerfile.ubuntu -t $(IMAGE_UBUNTU) --build-arg ARCH=arm64v8 .
|
||||
|
||||
run:
|
||||
@docker run -it --rm \
|
||||
--cap-add SYS_ADMIN --device /dev/fuse --privileged \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/..,target=/workspace,readonly \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-ccache,target=/ccache \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-home,target=/home/ubuntu \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-build,target=/home/ubuntu/build \
|
||||
--env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \
|
||||
--entrypoint /bin/bash $(IMAGE_UBUNTU)
|
||||
build_ubuntu2204:
|
||||
docker build -f Dockerfile.ubuntu-2204 -t $(IMAGE_UBUNTU2204) .
|
||||
|
||||
run_ubuntu2204:
|
||||
@docker run $(COMMON_RUN_OPTS) $(IMAGE_UBUNTU2204)
|
||||
|
||||
build_fedora:
|
||||
docker build -f Dockerfile.fedora -t $(IMAGE_FEDORA) .
|
||||
|
||||
run_fedora:
|
||||
@docker run -it --rm \
|
||||
--cap-add SYS_ADMIN --device /dev/fuse --privileged \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/..,target=/workspace,readonly \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-ccache,target=/ccache \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-home,target=/home/mhx \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-build,target=/home/mhx/build \
|
||||
--env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \
|
||||
--entrypoint /bin/bash $(IMAGE_FEDORA)
|
||||
@docker run $(COMMON_RUN_OPTS) $(IMAGE_FEDORA)
|
||||
|
||||
build_arch:
|
||||
docker build -f Dockerfile.arch -t $(IMAGE_ARCH) .
|
||||
|
||||
run_arch:
|
||||
@docker run -it --rm \
|
||||
--cap-add SYS_ADMIN --device /dev/fuse --privileged \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/..,target=/workspace,readonly \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-ccache,target=/ccache \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-home,target=/home/mhx \
|
||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-build,target=/home/mhx/build \
|
||||
--env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \
|
||||
--entrypoint /bin/bash $(IMAGE_ARCH)
|
||||
@docker run $(COMMON_RUN_OPTS) $(IMAGE_ARCH)
|
||||
|
@ -15,8 +15,13 @@ rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
GCC_VERSION=14
|
||||
CLANG_VERSION=18
|
||||
if [[ "$BUILD_DIST" == "ubuntu-2204" ]]; then
|
||||
GCC_VERSION=12
|
||||
CLANG_VERSION=15
|
||||
else
|
||||
GCC_VERSION=14
|
||||
CLANG_VERSION=18
|
||||
fi
|
||||
|
||||
case "-$BUILD_TYPE-" in
|
||||
*-ninja-*)
|
||||
|
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@ -276,6 +276,12 @@ jobs:
|
||||
- arch: arm64v8
|
||||
dist: ubuntu
|
||||
build_type: clang-debug-ninja-static
|
||||
- arch: arm64v8
|
||||
dist: ubuntu-2204
|
||||
build_type: gcc-release-ninja
|
||||
- arch: arm64v8
|
||||
dist: ubuntu-2204
|
||||
build_type: clang-release-ninja
|
||||
|
||||
runs-on:
|
||||
- self-hosted
|
||||
|
Loading…
x
Reference in New Issue
Block a user