Add docker build workflow and fix submodule issues.

This commit is contained in:
Ashton Snelgrove 2020-12-22 17:35:49 -07:00
parent b29fca6bfa
commit e280b5b344
17 changed files with 139 additions and 104 deletions

View File

@ -10,6 +10,7 @@ docs
libopenfpga
libs
LICENSE
Makefile
openfpga
openfpga_flow
openfpga.sh

79
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,79 @@
name: Build docker CI images
on:
- workflow_dispatch
jobs:
base_images:
name: Push Docker images
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
- name: Build base
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/Dockerfile.base
add_git_labels: true
push: true
tags: ghcr.io/lnis-uofu/openfpga-buildenv-base:latest
- name: Build test image
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/Dockerfile.test
add_git_labels: true
push: true
tags: ghcr.io/lnis-uofu/openfpga-buildenv-test:latest
- name: Build run time image
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/Dockerfile.run
add_git_labels: true
push: true
tags: ghcr.io/lnis-uofu/openfpga-buildenv-run:latest
compiler_images:
name: Build ${{ matrix.compiler }} compiler image
needs: base_images
runs-on: ubuntu-latest
strategy:
matrix:
compiler:
- gcc-5
- gcc-6
- gcc-7
- gcc-8
- gcc-9
- clang-6
- clang-8
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
- name: Build ${{ matrix.compiler }} image
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/Dockerfile.${{ matrix.compiler }}
add_git_labels: true
push: true
tags: ghcr.io/lnis-uofu/openfpga-buildenv-${{ matrix.compiler }}:latest

View File

@ -0,0 +1,38 @@
apt-get update && apt-get install -y \
autoconf \
automake \
bison \
ccache \
cmake \
ctags \
curl \
doxygen \
flex \
fontconfig \
gdb \
git \
gperf \
iverilog \
libc6-dev \
libcairo2-dev \
libevent-dev \
libffi-dev \
libfontconfig1-dev \
liblist-moreutils-perl \
libncurses5-dev \
libreadline-dev \
libx11-dev \
libxft-dev \
libxml++2.6-dev \
make \
perl \
pkg-config \
python3 \
python3-setuptools \
python3-lxml \
python3-pip \
qt5-default \
texinfo \
time \
valgrind \
zip

View File

@ -0,0 +1,2 @@
apt-get update && apt-get install -y \
libc6 libffi6 libgcc1 libreadline7 libstdc++6 libtcl8.6 python3 zlib1g libbz2-1.0

View File

@ -0,0 +1,2 @@
apt-get update && apt-get install -y libdatetime-perl iverilog python3-pip \
libc6 libffi6 libgcc1 libreadline7 libstdc++6 libtcl8.6 python3 zlib1g libbz2-1.0

View File

@ -1,53 +0,0 @@
# Install all the dependency for OpenFPGA in Ubuntu-18.04
sudo apt-get update
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install bash
sudo apt-get install bison
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install ccache
sudo apt-get install ctags
sudo apt-get install curl
sudo apt-get install doxygen
sudo apt-get install flex
sudo apt-get install fontconfig
sudo apt-get install gdb
sudo apt-get install git
sudo apt-get install gperf
sudo apt-get install iverilog
sudo apt-get install libcairo2-dev
sudo apt-get install libevent-dev
sudo apt-get install libfontconfig1-dev
sudo apt-get install liblist-moreutils-perl
sudo apt-get install libncurses5-dev
sudo apt-get install libx11-dev
sudo apt-get install libxft-dev
sudo apt-get install libxml++2.6-dev
sudo apt-get install perl
sudo apt-get install python
sudo apt-get install python3-setuptools
sudo apt-get install python-lxml
sudo apt-get install tcllib
sudo apt-get install tcl8.6-dev
sudo apt-get install texinfo
sudo apt-get install time
sudo apt-get install valgrind
sudo apt-get install zip
sudo apt-get install qt5-default
sudo apt-get install clang-format-7
# Add all the supported compilers
sudo apt-get install g++-5
sudo apt-get install gcc-5
sudo apt-get install g++-6
sudo apt-get install gcc-6
sudo apt-get install g++-7
sudo apt-get install gcc-7
sudo apt-get install g++-8
sudo apt-get install gcc-8
sudo apt-get install g++-9
sudo apt-get install gcc-9
sudo apt-get install clang-6.0
sudo apt-get install clang-8
# Python dependencies
python3 -m pip install -r /home/runner/work/OpenFPGA/OpenFPGA/requirements.txt

View File

@ -1,42 +1,9 @@
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
autoconf \
automake \
bison \
ccache \
cmake \
ctags \
curl \
doxygen \
flex \
fontconfig \
gdb \
git \
gperf \
iverilog \
libc6-dev \
libcairo2-dev \
libevent-dev \
libffi-dev \
libfontconfig1-dev \
liblist-moreutils-perl \
libncurses5-dev \
libreadline-dev \
libx11-dev \
libxft-dev \
libxml++2.6-dev \
make \
perl \
pkg-config \
python3 \
python3-setuptools \
python3-lxml \
python3-pip \
qt5-default \
texinfo \
time \
valgrind \
zip
RUN apt-get update && apt-get install software-properties-common -y
# 18.04 includes 2.17 but github requires 2.18+ to support submodules.
RUN add-apt-repository ppa:git-core/ppa
ADD .github/workflows/install_dependencies_build.sh install_dependencies_build.sh
RUN bash install_dependencies_build.sh
ADD requirements.txt requirements.txt
RUN python3 -m pip install -r requirements.txt

View File

@ -1,2 +1,2 @@
FROM openfpga-buildenv-base
FROM ghcr.io/lnis-uofu/openfpga-buildenv-base
RUN apt-get update && apt-get install -y clang-format-7 clang-6.0

View File

@ -1,2 +1,2 @@
FROM openfpga-buildenv-base
FROM ghcr.io/lnis-uofu/openfpga-buildenv-base
RUN apt-get update && apt-get install -y clang-format-7 clang-8

View File

@ -1,2 +1,2 @@
FROM openfpga-buildenv-base
FROM ghcr.io/lnis-uofu/openfpga-buildenv-base
RUN apt-get update && apt-get install -y gcc-5 g++-5

View File

@ -1,2 +1,2 @@
FROM openfpga-buildenv-base
FROM ghcr.io/lnis-uofu/openfpga-buildenv-base
RUN apt-get update && apt-get install -y gcc-6 g++-6

View File

@ -1,2 +1,2 @@
FROM openfpga-buildenv-base
FROM ghcr.io/lnis-uofu/openfpga-buildenv-base
RUN apt-get update && apt-get install -y gcc-7 g++-7

View File

@ -1,2 +1,2 @@
FROM openfpga-buildenv-base
FROM ghcr.io/lnis-uofu/openfpga-buildenv-base
RUN apt-get update && apt-get install -y gcc-8 g++-8

View File

@ -1,4 +1,4 @@
FROM openfpga-buildenv-base
FROM ghcr.io/lnis-uofu/openfpga-buildenv-base
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
RUN apt-get update && apt-get install -y gcc-9 g++-9

View File

@ -1,4 +1,4 @@
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
libc6 libffi6 libgcc1 libreadline7 libstdc++6 libtcl8.6 python3 zlib1g libbz2-1.0
ADD .github/workflows/install_dependencies_runtime.sh install_dependencies_runtime.sh
RUN bash install_dependencies_runtime.sh

View File

@ -1,7 +1,6 @@
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
libc6 libffi6 libgcc1 libreadline7 libstdc++6 libtcl8.6 python3 zlib1g libbz2-1.0
RUN apt-get install -y libdatetime-perl iverilog python3-pip
ADD .github/workflows/install_dependencies_test.sh install_dependencies_test.sh
RUN bash install_dependencies_test.sh
ADD requirements.txt requirements.txt
RUN python3 -m pip install -r requirements.txt