Add docker build workflow and fix submodule issues.
This commit is contained in:
parent
b29fca6bfa
commit
e280b5b344
|
@ -10,6 +10,7 @@ docs
|
||||||
libopenfpga
|
libopenfpga
|
||||||
libs
|
libs
|
||||||
LICENSE
|
LICENSE
|
||||||
|
Makefile
|
||||||
openfpga
|
openfpga
|
||||||
openfpga_flow
|
openfpga_flow
|
||||||
openfpga.sh
|
openfpga.sh
|
||||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,2 @@
|
||||||
|
apt-get update && apt-get install -y \
|
||||||
|
libc6 libffi6 libgcc1 libreadline7 libstdc++6 libtcl8.6 python3 zlib1g libbz2-1.0
|
|
@ -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
|
|
@ -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
|
|
|
@ -1,6 +1,6 @@
|
||||||
name: "Pull Request Labeler"
|
name: "Pull Request Labeler"
|
||||||
on:
|
on:
|
||||||
- pull_request_target
|
- pull_request_target
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
triage:
|
triage:
|
||||||
|
|
|
@ -1,42 +1,9 @@
|
||||||
FROM ubuntu:18.04
|
FROM ubuntu:18.04
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install software-properties-common -y
|
||||||
autoconf \
|
# 18.04 includes 2.17 but github requires 2.18+ to support submodules.
|
||||||
automake \
|
RUN add-apt-repository ppa:git-core/ppa
|
||||||
bison \
|
ADD .github/workflows/install_dependencies_build.sh install_dependencies_build.sh
|
||||||
ccache \
|
RUN bash install_dependencies_build.sh
|
||||||
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
|
|
||||||
ADD requirements.txt requirements.txt
|
ADD requirements.txt requirements.txt
|
||||||
RUN python3 -m pip install -r requirements.txt
|
RUN python3 -m pip install -r requirements.txt
|
||||||
|
|
|
@ -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
|
RUN apt-get update && apt-get install -y clang-format-7 clang-6.0
|
||||||
|
|
|
@ -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
|
RUN apt-get update && apt-get install -y clang-format-7 clang-8
|
||||||
|
|
|
@ -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
|
RUN apt-get update && apt-get install -y gcc-5 g++-5
|
||||||
|
|
|
@ -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
|
RUN apt-get update && apt-get install -y gcc-6 g++-6
|
||||||
|
|
|
@ -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
|
RUN apt-get update && apt-get install -y gcc-7 g++-7
|
||||||
|
|
|
@ -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
|
RUN apt-get update && apt-get install -y gcc-8 g++-8
|
||||||
|
|
|
@ -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 apt-get install -y software-properties-common
|
||||||
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
|
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||||
RUN apt-get update && apt-get install -y gcc-9 g++-9
|
RUN apt-get update && apt-get install -y gcc-9 g++-9
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM ubuntu:18.04
|
FROM ubuntu:18.04
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
RUN apt-get update && apt-get install -y \
|
ADD .github/workflows/install_dependencies_runtime.sh install_dependencies_runtime.sh
|
||||||
libc6 libffi6 libgcc1 libreadline7 libstdc++6 libtcl8.6 python3 zlib1g libbz2-1.0
|
RUN bash install_dependencies_runtime.sh
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
FROM ubuntu:18.04
|
FROM ubuntu:18.04
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
RUN apt-get update && apt-get install -y \
|
ADD .github/workflows/install_dependencies_test.sh install_dependencies_test.sh
|
||||||
libc6 libffi6 libgcc1 libreadline7 libstdc++6 libtcl8.6 python3 zlib1g libbz2-1.0
|
RUN bash install_dependencies_test.sh
|
||||||
RUN apt-get install -y libdatetime-perl iverilog python3-pip
|
|
||||||
ADD requirements.txt requirements.txt
|
ADD requirements.txt requirements.txt
|
||||||
RUN python3 -m pip install -r requirements.txt
|
RUN python3 -m pip install -r requirements.txt
|
||||||
|
|
Loading…
Reference in New Issue