jenkins support
This commit is contained in:
parent
5e456b7747
commit
11860539ed
|
|
@ -0,0 +1,15 @@
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
stages {
|
||||||
|
stage('Build') {
|
||||||
|
steps {
|
||||||
|
sh './jenkins/build.sh'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Test') {
|
||||||
|
steps {
|
||||||
|
sh './jenkins/test.sh'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -x
|
||||||
|
set -e
|
||||||
|
docker build -t openroad/openroad --target base-dependencies .
|
||||||
|
docker run -u $(id -u ${USER}):$(id -g ${USER}) -v $(pwd):/OpenROAD openroad/openroad bash -c "./OpenROAD/jenkins/install.sh"
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
FROM centos:centos7 AS base-dependencies
|
||||||
|
LABEL maintainer="Abdelrahman Hosny <abdelrahman_hosny@brown.edu>"
|
||||||
|
|
||||||
|
# Install dev and runtime dependencies
|
||||||
|
RUN yum group install -y "Development Tools" \
|
||||||
|
&& yum install -y https://centos7.iuscommunity.org/ius-release.rpm \
|
||||||
|
&& yum install -y wget git centos-release-scl devtoolset-8 \
|
||||||
|
devtoolset-8-libatomic-devel tcl-devel tcl tk libstdc++ tk-devel pcre-devel \
|
||||||
|
python36u python36u-libs python36u-devel python36u-pip && \
|
||||||
|
yum clean -y all && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
# Install gcc 4.9
|
||||||
|
RUN curl -O https://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz \
|
||||||
|
&& tar xzf gcc-4.9.2.tar.gz \
|
||||||
|
&& cd gcc-4.9.2 \
|
||||||
|
&& ./contrib/download_prerequisites \
|
||||||
|
&& cd .. \
|
||||||
|
&& mkdir gcc-build \
|
||||||
|
&& cd gcc-build \
|
||||||
|
&& ../gcc-4.9.2/configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--enable-shared \
|
||||||
|
--enable-threads=posix \
|
||||||
|
--enable-__cxa_atexit \
|
||||||
|
--enable-clocale=gnu \
|
||||||
|
--disable-multilib \
|
||||||
|
--enable-languages=all \
|
||||||
|
&& make -j$(nproc) \
|
||||||
|
&& make install \
|
||||||
|
&& cd .. \
|
||||||
|
&& rm -rf gcc-4.9.2 \
|
||||||
|
&& rm -rf gcc-4.9.2.tar.gz \
|
||||||
|
&& rm -rf gcc-build
|
||||||
|
|
||||||
|
|
||||||
|
# Install CMake
|
||||||
|
RUN wget https://cmake.org/files/v3.14/cmake-3.14.0-Linux-x86_64.sh && \
|
||||||
|
chmod +x cmake-3.14.0-Linux-x86_64.sh && \
|
||||||
|
./cmake-3.14.0-Linux-x86_64.sh --skip-license --prefix=/usr/local && rm -rf cmake-3.14.0-Linux-x86_64.sh \
|
||||||
|
&& yum clean -y all
|
||||||
|
|
||||||
|
# Install epel repo
|
||||||
|
RUN wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
|
||||||
|
yum install -y epel-release-latest-7.noarch.rpm && rm -rf epel-release-latest-7.noarch.rpm \
|
||||||
|
&& yum clean -y all
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Install SWIG
|
||||||
|
RUN yum remove -y swig \
|
||||||
|
&& wget https://github.com/swig/swig/archive/rel-4.0.1.tar.gz \
|
||||||
|
&& tar xfz rel-4.0.1.tar.gz \
|
||||||
|
&& rm -rf rel-4.0.1.tar.gz \
|
||||||
|
&& cd swig-rel-4.0.1 \
|
||||||
|
&& ./autogen.sh && ./configure --prefix=/usr && make -j $(nproc) && make install \
|
||||||
|
&& cd .. \
|
||||||
|
&& rm -rf swig-rel-4.0.1
|
||||||
|
|
||||||
|
# Temporarily add boost till all dependent tools are updated..
|
||||||
|
RUN yum install -y boost-devel && \
|
||||||
|
yum clean -y all && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
FROM base-dependencies AS builder
|
||||||
|
|
||||||
|
COPY . /OpenROAD
|
||||||
|
WORKDIR /OpenROAD
|
||||||
|
|
||||||
|
# Build
|
||||||
|
RUN mkdir build
|
||||||
|
RUN cd build && cmake .. && make -j 4
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
FROM centos:centos7 AS base-dependencies
|
||||||
|
LABEL maintainer="Abdelrahman Hosny <abdelrahman_hosny@brown.edu>"
|
||||||
|
|
||||||
|
# Install dev and runtime dependencies
|
||||||
|
RUN yum group install -y "Development Tools" \
|
||||||
|
&& yum install -y https://centos7.iuscommunity.org/ius-release.rpm \
|
||||||
|
&& yum install -y wget git centos-release-scl devtoolset-8 \
|
||||||
|
devtoolset-8-libatomic-devel tcl-devel tcl tk libstdc++ tk-devel pcre-devel \
|
||||||
|
python36u python36u-libs python36u-devel python36u-pip && \
|
||||||
|
yum clean -y all && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
# Install gcc 7.3
|
||||||
|
RUN curl -O https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz \
|
||||||
|
&& tar xzf gcc-7.3.0.tar.gz \
|
||||||
|
&& cd gcc-7.3.0 \
|
||||||
|
&& ./contrib/download_prerequisites \
|
||||||
|
&& cd .. \
|
||||||
|
&& mkdir gcc-build \
|
||||||
|
&& cd gcc-build \
|
||||||
|
&& ../gcc-7.3.0/configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--enable-shared \
|
||||||
|
--enable-threads=posix \
|
||||||
|
--enable-__cxa_atexit \
|
||||||
|
--enable-clocale=gnu \
|
||||||
|
--disable-multilib \
|
||||||
|
--enable-languages=all \
|
||||||
|
&& make -j$(nproc) \
|
||||||
|
&& make install \
|
||||||
|
&& cd .. \
|
||||||
|
&& rm -rf gcc-7.3.0 \
|
||||||
|
&& rm -rf gcc-7.3.0.tar.gz \
|
||||||
|
&& rm -rf gcc-build
|
||||||
|
|
||||||
|
|
||||||
|
# Install CMake
|
||||||
|
RUN wget https://cmake.org/files/v3.14/cmake-3.14.0-Linux-x86_64.sh && \
|
||||||
|
chmod +x cmake-3.14.0-Linux-x86_64.sh && \
|
||||||
|
./cmake-3.14.0-Linux-x86_64.sh --skip-license --prefix=/usr/local && rm -rf cmake-3.14.0-Linux-x86_64.sh \
|
||||||
|
&& yum clean -y all
|
||||||
|
|
||||||
|
# Install epel repo
|
||||||
|
RUN wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
|
||||||
|
yum install -y epel-release-latest-7.noarch.rpm && rm -rf epel-release-latest-7.noarch.rpm \
|
||||||
|
&& yum clean -y all
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Install SWIG
|
||||||
|
RUN yum remove -y swig \
|
||||||
|
&& wget https://github.com/swig/swig/archive/rel-4.0.1.tar.gz \
|
||||||
|
&& tar xfz rel-4.0.1.tar.gz \
|
||||||
|
&& rm -rf rel-4.0.1.tar.gz \
|
||||||
|
&& cd swig-rel-4.0.1 \
|
||||||
|
&& ./autogen.sh && ./configure --prefix=/usr && make -j $(nproc) && make install \
|
||||||
|
&& cd .. \
|
||||||
|
&& rm -rf swig-rel-4.0.1
|
||||||
|
|
||||||
|
# Temporarily add boost till all dependent tools are updated..
|
||||||
|
RUN yum install -y boost-devel && \
|
||||||
|
yum clean -y all && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
FROM base-dependencies AS builder
|
||||||
|
|
||||||
|
COPY . /OpenROAD
|
||||||
|
WORKDIR /OpenROAD
|
||||||
|
|
||||||
|
# Build
|
||||||
|
RUN mkdir build
|
||||||
|
RUN cd build && cmake .. && make -j 4
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -x
|
||||||
|
set -e
|
||||||
|
mkdir -p /OpenSTA/build
|
||||||
|
cd /OpenSTA/build
|
||||||
|
cmake ..
|
||||||
|
make -j 4
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
docker run -u $(id -u ${USER}):$(id -g ${USER}) -v $(pwd):/OpenSTA openroad/openroad bash -c "/OpenSTA/test/regression"
|
||||||
Loading…
Reference in New Issue