Fix dockerfile for master build to include yosys/share, and fix conditionals.

This commit is contained in:
Ashton Snelgrove 2021-01-21 16:40:09 -07:00
parent f956f28792
commit 8cca1c63c3
6 changed files with 40 additions and 27 deletions

View File

@ -29,3 +29,4 @@ yosys
!yosys/yosys-config
!yosys/yosys-filterlib
!yosys/yosys-smtbmc
!yosys/share

View File

@ -3,11 +3,10 @@ name: linux_build
# Run CI on push, PR, and weekly.
on:
workflow_dispatch:
# push:
# pull_request:
# schedule:
# - cron: '0 0 * * 0 ' # weekly
push:
pull_request:
schedule:
- cron: '0 0 * * 0 ' # weekly
# Environment variables
env:
@ -21,7 +20,8 @@ jobs:
name: "Detect code changes"
runs-on: ubuntu-18.04
outputs:
source_modified: ${{ steps.changes.outputs.status_code != '0'}}
# this is output as string, see https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs
source_modified: ${{ steps.changes.outputs.status_code == '0' }}
steps:
- name: Checkout OpenFPGA repo
uses: actions/checkout@v2
@ -32,14 +32,14 @@ jobs:
id: changes
run: |
if git diff origin/master HEAD --name-status --exit-code -- . ':!openfpga_flow' ':!docs'; then
echo "::set-output name=status_code::$?"
else
echo "::set-output name=status_code::0"
else
echo "::set-output name=status_code::$?"
fi
# Test the compilation compatibility
linux_build:
needs: change_detect
if: ${{needs.change_detect.outputs.source_modified || github.ref == 'refs/heads/master' }}
if: ${{ fromJSON(needs.change_detect.outputs.source_modified) || github.ref == 'refs/heads/master' }}
name: ${{ matrix.config.name }}
runs-on: ubuntu-18.04
container: ghcr.io/lnis-uofu/openfpga-build-${{ matrix.config.cc}}
@ -226,7 +226,7 @@ jobs:
run: source .github/workflows/${{matrix.config.script}}
docker_regression_tests:
needs: change_detect
#if: ${{ !needs.change_detect.outputs.source_modified }}
if: ${{ !fromJSON(needs.change_detect.outputs.source_modified) }}
name: Regression tests against master artifacts
runs-on: ubuntu-18.04
container: ghcr.io/lnis-uofu/openfpga-master:latest
@ -247,16 +247,19 @@ jobs:
steps:
- name: Checkout OpenFPGA repo
uses: actions/checkout@v2
with:
submodules: true
- name: ${{matrix.config.name}}
shell: bash
run:
ln -s /opt/openfpga/abc abc/abc
ln -s /opt/openfpga/ace ace2/ace
ln -s /opt/openfpga/openfpga openfpga/openfpga
ln -s /opt/openfpga/vpr vpr/vpr
ln -s /opt/openfpga/yosys yosys/yosys
ln -s /opt/openfpga/yosys-abc yosys/yosys-abc
ln -s /opt/openfpga/yosys-config yosys/yosys-config
ln -s /opt/openfpga/yosys-filterlib yosys/yosys-filterlib
ln -s /opt/openfpga/yosys-smtbmc yosys/yosys-smtbmc
run: |
cp /opt/openfpga/abc/abc abc/abc
cp /opt/openfpga/ace2/ace ace2/ace
cp /opt/openfpga/openfpga openfpga/openfpga
cp /opt/openfpga/vpr/vpr vpr/vpr
cp /opt/openfpga/yosys/yosys yosys/yosys
cp /opt/openfpga/yosys/yosys-abc yosys/yosys-abc
cp /opt/openfpga/yosys/yosys-config yosys/yosys-config
cp /opt/openfpga/yosys/yosys-filterlib yosys/yosys-filterlib
cp /opt/openfpga/yosys/yosys-smtbmc yosys/yosys-smtbmc
cp -r /opt/openfpga/yosys/share yosys/share
source .github/workflows/${{matrix.config.script}}

View File

@ -1,5 +1,6 @@
name: Build docker CI images
on: push
on:
- workflow_dispatch
jobs:
base_images:
name: Push Docker images

View File

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

View File

@ -1,6 +1,9 @@
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
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_run.sh install_dependencies_run.sh
RUN bash install_dependencies_test.sh
RUN bash install_dependencies_run.sh
ADD requirements.txt requirements.txt
RUN python3 -m pip install -r requirements.txt

View File

@ -1,5 +1,10 @@
FROM ghcr.io/lnis-uofu/openfpga-env
RUN mkdir /opt/openfpga
COPY abc/abc ace2/ace openfpga/openfpga vpr/vpr yosys/yosys yosys/yosys-abc yosys/yosys-config yosys/yosys-filterlib yosys/yosys-smtbmc /opt/openfpga/
RUN cd /opt/openfpga && chmod +x abc ace openfpga vpr yosys yosys-abc yosys-config yosys-filterlib yosys-smtbmc
ENV PATH="/opt/openfpga:${PATH}"
RUN mkdir /opt/openfpga /opt/openfpga/abc /opt/openfpga/ace2 /opt/openfpga/vpr /opt/openfpga/yosys
COPY openfpga/openfpga /opt/openfpga/openfpga
COPY abc/abc /opt/openfpga/abc/
COPY ace2/ace /opt/openfpga/ace2/
COPY vpr/vpr /opt/openfpga/vpr/
COPY yosys/yosys yosys/yosys-abc yosys/yosys-config yosys/yosys-filterlib yosys/yosys-smtbmc /opt/openfpga/yosys/
COPY yosys/share /opt/openfpga/yosys/share
RUN cd /opt/openfpga && chmod +x abc/abc ace2/ace openfpga vpr/vpr yosys/yosys yosys/yosys-abc yosys/yosys-config yosys/yosys-filterlib yosys/yosys-smtbmc
ENV PATH="/opt/openfpga:/opt/openfpga/yosys:/opt/openfpga/ace2:/opt/openfpga/abc:/opt/openfpga/vpr:${PATH}"