mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-13 06:16:55 -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_UBUNTU="dwarfs-buildenv"
|
||||||
|
IMAGE_UBUNTU2204="dwarfs-buildenv-ubuntu2204"
|
||||||
IMAGE_FEDORA="dwarfs-buildenv-fedora"
|
IMAGE_FEDORA="dwarfs-buildenv-fedora"
|
||||||
IMAGE_ARCH="dwarfs-buildenv-arch"
|
IMAGE_ARCH="dwarfs-buildenv-arch"
|
||||||
|
|
||||||
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||||
NPROC:=$(shell nproc)
|
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:
|
build:
|
||||||
docker build -t $(IMAGE_UBUNTU) .
|
docker build -t $(IMAGE_UBUNTU) .
|
||||||
|
|
||||||
|
run:
|
||||||
|
@docker run $(COMMON_RUN_OPTS) $(IMAGE_UBUNTU)
|
||||||
|
|
||||||
build_arm:
|
build_arm:
|
||||||
docker build -f Dockerfile.ubuntu -t $(IMAGE_UBUNTU) --build-arg ARCH=arm64v8 .
|
docker build -f Dockerfile.ubuntu -t $(IMAGE_UBUNTU) --build-arg ARCH=arm64v8 .
|
||||||
|
|
||||||
run:
|
build_ubuntu2204:
|
||||||
@docker run -it --rm \
|
docker build -f Dockerfile.ubuntu-2204 -t $(IMAGE_UBUNTU2204) .
|
||||||
--cap-add SYS_ADMIN --device /dev/fuse --privileged \
|
|
||||||
--mount type=bind,source="$(ROOT_DIR)"/..,target=/workspace,readonly \
|
run_ubuntu2204:
|
||||||
--mount type=bind,source="$(ROOT_DIR)"/../@docker-ccache,target=/ccache \
|
@docker run $(COMMON_RUN_OPTS) $(IMAGE_UBUNTU2204)
|
||||||
--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_fedora:
|
build_fedora:
|
||||||
docker build -f Dockerfile.fedora -t $(IMAGE_FEDORA) .
|
docker build -f Dockerfile.fedora -t $(IMAGE_FEDORA) .
|
||||||
|
|
||||||
run_fedora:
|
run_fedora:
|
||||||
@docker run -it --rm \
|
@docker run $(COMMON_RUN_OPTS) $(IMAGE_FEDORA)
|
||||||
--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)
|
|
||||||
|
|
||||||
build_arch:
|
build_arch:
|
||||||
docker build -f Dockerfile.arch -t $(IMAGE_ARCH) .
|
docker build -f Dockerfile.arch -t $(IMAGE_ARCH) .
|
||||||
|
|
||||||
run_arch:
|
run_arch:
|
||||||
@docker run -it --rm \
|
@docker run $(COMMON_RUN_OPTS) $(IMAGE_ARCH)
|
||||||
--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)
|
|
||||||
|
@ -15,8 +15,13 @@ rm -rf build
|
|||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
GCC_VERSION=14
|
if [[ "$BUILD_DIST" == "ubuntu-2204" ]]; then
|
||||||
CLANG_VERSION=18
|
GCC_VERSION=12
|
||||||
|
CLANG_VERSION=15
|
||||||
|
else
|
||||||
|
GCC_VERSION=14
|
||||||
|
CLANG_VERSION=18
|
||||||
|
fi
|
||||||
|
|
||||||
case "-$BUILD_TYPE-" in
|
case "-$BUILD_TYPE-" in
|
||||||
*-ninja-*)
|
*-ninja-*)
|
||||||
|
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@ -276,6 +276,12 @@ jobs:
|
|||||||
- arch: arm64v8
|
- arch: arm64v8
|
||||||
dist: ubuntu
|
dist: ubuntu
|
||||||
build_type: clang-debug-ninja-static
|
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:
|
runs-on:
|
||||||
- self-hosted
|
- self-hosted
|
||||||
|
Loading…
x
Reference in New Issue
Block a user