Add the builder tasks to build and release docker images
This commit is contained in:
parent
bcbf49c1a1
commit
49e3f16901
|
@ -25,4 +25,6 @@ bin/serenec_CXX_cotire.cmake
|
||||||
docs/Doxyfile.docs
|
docs/Doxyfile.docs
|
||||||
.ccache/
|
.ccache/
|
||||||
docs/spec.tex
|
docs/spec.tex
|
||||||
docs/spec.pdf
|
docs/spec.pdf
|
||||||
|
|
||||||
|
.env
|
|
@ -228,16 +228,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||||
add_subdirectory(include)
|
add_subdirectory(include)
|
||||||
|
|
||||||
if (SERENE_ENABLE_DOCS)
|
if (SERENE_ENABLE_DOCS)
|
||||||
# Docs only available if this is the main app
|
add_subdirectory(docs)
|
||||||
find_package(Doxygen
|
|
||||||
REQUIRED dot
|
|
||||||
OPTIONAL_COMPONENTS dia)
|
|
||||||
|
|
||||||
if(Doxygen_FOUND)
|
|
||||||
message(STATUS "Found Doxygen, building the docs")
|
|
||||||
add_subdirectory(docs)
|
|
||||||
else()
|
|
||||||
message(STATUS "Doxygen not found, not building the docs")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
44
builder
44
builder
|
@ -176,14 +176,46 @@ function tests() { ## Generates and build the project including the test cases
|
||||||
popd_build
|
popd_build
|
||||||
}
|
}
|
||||||
|
|
||||||
# function docker-llvm() { #
|
function build-llvm-image() { ## Build the LLVM image that we use to build Serene's image
|
||||||
# docker build -f resources/docker/Dockerfile.llvm -t serene/llvm:15-1 .
|
source .env
|
||||||
# }
|
|
||||||
|
docker build \
|
||||||
|
-f $ME/resources/docker/llvm/Dockerfile \
|
||||||
|
-t $REGISTRY/llvm:$1-$2 \
|
||||||
|
--build-arg VERSION=$1 \
|
||||||
|
.
|
||||||
|
|
||||||
function docker-serene() { ## Build the Serene docker image for the current HEAD
|
|
||||||
docker build -f resources/docker/Dockerfile.serene -t serene/build:$(git rev-parse HEAD) .
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function push-llvm-image() { ## Pushes the LLVM image to the registery
|
||||||
|
source .env
|
||||||
|
|
||||||
|
docker login $REGISTRY -u $SERENE_REGISTERY_USER -p $SERENE_REGISTERY_PASS
|
||||||
|
docker push $REGISTRY/llvm:$1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function build-serene-image() { ## Build the Serene docker image for the current HEAD
|
||||||
|
source .env
|
||||||
|
docker build \
|
||||||
|
-f $ME/resources/docker/serene/Dockerfile \
|
||||||
|
-t $REGISTRY/serene:$VERSION-$(git rev-parse HEAD) \
|
||||||
|
.
|
||||||
|
}
|
||||||
|
|
||||||
|
function release-serene-image() { ## Build and push the Serene docker image for the current HEAD in Release mode
|
||||||
|
source .env
|
||||||
|
docker build \
|
||||||
|
-f $ME/resources/docker/serene/Dockerfile \
|
||||||
|
-t $REGISTRY/serene:$VERSION \
|
||||||
|
--build-arg TASK=build-release \
|
||||||
|
.
|
||||||
|
docker login $REGISTRY -u $SERENE_REGISTERY_USER -p $SERENE_REGISTERY_PASS
|
||||||
|
docker push $REGISTRY/serene:$VERSION
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function setup() { ## Setup the working directory and make it ready for development
|
function setup() { ## Setup the working directory and make it ready for development
|
||||||
rm -rfv $ME/.git/hooks/pre-commit
|
rm -rfv $ME/.git/hooks/pre-commit
|
||||||
ln -s $ME/scripts/pre-commit $ME/.git/hooks/pre-commit
|
ln -s $ME/scripts/pre-commit $ME/.git/hooks/pre-commit
|
||||||
|
@ -203,7 +235,7 @@ echo "Commands:"
|
||||||
grep -E '^function [a-zA-Z0-9_-]+\(\) \{ ## .*$$' $0 | \
|
grep -E '^function [a-zA-Z0-9_-]+\(\) \{ ## .*$$' $0 | \
|
||||||
sort | \
|
sort | \
|
||||||
sed 's/^function \([a-zA-Z0-9_-]*\)() { ## \(.*\)/\1:\2/' | \
|
sed 's/^function \([a-zA-Z0-9_-]*\)() { ## \(.*\)/\1:\2/' | \
|
||||||
awk 'BEGIN {FS=":"}; {printf "\033[36m%-20s\033[0m %s\n", $1, $2}'
|
awk 'BEGIN {FS=":"}; {printf "\033[36m%-30s\033[0m %s\n", $1, $2}'
|
||||||
}
|
}
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
|
@ -78,6 +78,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
class SERENE_EXPORT Halley {
|
class SERENE_EXPORT Halley {
|
||||||
|
// TODO: Replace this with a variant of LLJIT and LLLazyJIT
|
||||||
std::unique_ptr<llvm::orc::LLJIT> engine;
|
std::unique_ptr<llvm::orc::LLJIT> engine;
|
||||||
std::unique_ptr<ObjectCache> cache;
|
std::unique_ptr<ObjectCache> cache;
|
||||||
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
FROM serene/llvm:15
|
|
||||||
|
|
||||||
RUN apt-get update --fix-missing && apt-get install -y wget gnupg ccache cmake ccache git ninja-build build-essential binutils libncurses-dev
|
|
||||||
WORKDIR /app
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
ENV PATH="/opt/llvm/bin:$PATH"
|
|
||||||
ENV CXX=clang++
|
|
||||||
ENV CC=clang
|
|
||||||
ENV LDFLAGS="-fuse-ld=lld"
|
|
||||||
|
|
||||||
RUN LD_LIBRARY_PATH="$(clang -print-runtime-dir):$LD_LIBRARY_PATH" ./builder build
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
FROM debian:sid-slim
|
||||||
|
|
||||||
|
ARG VERSION
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y wget \
|
||||||
|
gnupg \
|
||||||
|
ccache \
|
||||||
|
cmake \
|
||||||
|
ccache \
|
||||||
|
git \
|
||||||
|
ninja-build \
|
||||||
|
build-essential \
|
||||||
|
binutils \
|
||||||
|
lsb-release \
|
||||||
|
wget \
|
||||||
|
software-properties-common \
|
||||||
|
zlib1g \
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
|
RUN wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh
|
||||||
|
RUN ./llvm.sh ${VERSION} all
|
||||||
|
RUN apt-get update --fix-missing && \
|
||||||
|
apt-get install -y mlir-${VERSION}-tools \
|
||||||
|
libmlir-${VERSION}-dev \
|
||||||
|
libmlir-${VERSION} \
|
||||||
|
libmlir-${VERSION}-dbgsym \
|
||||||
|
liblld-${VERSION} \
|
||||||
|
liblld-${VERSION}-dev
|
||||||
|
|
||||||
|
RUN ln -s `which lld-${VERSION}` /usr/bin/lld && \
|
||||||
|
ln -s `which clang-${VERSION}` /usr/bin/clang && \
|
||||||
|
ln -s `which clang++-${VERSION}` /usr/bin/clang++ && \
|
||||||
|
ln -s `which mlir-tblgen-${VERSION}` /usr/bin/mlir-tblgen
|
||||||
|
|
||||||
|
ENV MLIR_DIR /usr/lib/llvm-${VERSION}
|
||||||
|
ENV CMAKE_PREFIX_PATH=/usr/lib/llvm-${VERSION}
|
||||||
|
ENV LD_LIBRARY_PATH=/usr/lib/llvm-${VERSION}/lib/clang/${VERSION}.0.0/lib/linux/
|
||||||
|
|
||||||
|
RUN apt-get clean
|
|
@ -0,0 +1,18 @@
|
||||||
|
SERENE_VERSION=15
|
||||||
|
BUILD_NO=4
|
||||||
|
REGISTRY=rg.fr-par.scw.cloud/serene
|
||||||
|
|
||||||
|
include $(ENVFILE)
|
||||||
|
|
||||||
|
.PHONY: build-dev
|
||||||
|
build-dev:
|
||||||
|
docker build -t $(REGISTRY)/serene:$(SERENE_VERSION)-$(TAG) $(SOURCE_PATH)
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
|
build:
|
||||||
|
docker build -t $(REGISTRY)/serene:$(SERENE_VERSION) --build-arg TASK=build-release .
|
||||||
|
|
||||||
|
.PHONY: release
|
||||||
|
release:
|
||||||
|
docker login $(REGISTRY) -u $(SERENE_REGISTERY_USER) -p $(SERENE_REGISTERY_PASS)
|
||||||
|
docker push $(REGISTRY)/serene:$(SERENE_VERSION)
|
|
@ -0,0 +1 @@
|
||||||
|
lxsameer@underworld.2962235:1638986649
|
|
@ -0,0 +1,9 @@
|
||||||
|
FROM rg.fr-par.scw.cloud/serene/llvm:15-4
|
||||||
|
|
||||||
|
ARG TASK=build
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN ./builder ${TASK}
|
Loading…
Reference in New Issue