connecting up technology server
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Edward Arthur Bingham 2022-09-26 10:33:59 -04:00
parent 44180bd882
commit 35cbece25a
4 changed files with 57 additions and 37 deletions

View File

@ -64,14 +64,6 @@ RUN cp hseplot/plot /opt/cad/bin
RUN cp hsesim/hsesim /opt/cad/bin
RUN cp hseenc/hseenc /opt/cad/bin
# install prspice
WORKDIR /toolsrc
RUN git clone https://github.com/nbingham1/prspice.git
WORKDIR prspice
RUN git checkout xyce
RUN make
RUN cp prdbase prspice /opt/cad/bin
# install ACT-06
RUN apt-get install -y libedit-dev zlib1g-dev m4 git gcc g++ make
WORKDIR /toolsrc
@ -80,28 +72,6 @@ WORKDIR act-06
RUN XYCE_INSTALL="/usr/local" make
RUN cp prsim/prsim chan.py measure.py sim2vcd.py tlint/tlint spi2act/spi2act.py v2act/v2act /opt/cad/bin
# install pr
WORKDIR /toolsrc
RUN --mount=type=secret,id=user --mount=type=secret,id=token git clone https://$(cat /run/secrets/user):$(cat /run/secrets/token)@git.broccolimicro.io/Broccoli/pr.git
RUN cp pr/* /opt/cad/bin
# install OpenRoad
WORKDIR /toolsrc
RUN git clone https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts.git
WORKDIR OpenROAD-flow-scripts
# install gaw
WORKDIR /toolsrc
RUN --mount=type=secret,id=user --mount=type=secret,id=token git clone https://$(cat /run/secrets/user):$(cat /run/secrets/token)@git.broccolimicro.io/Broccoli/waveview.git
WORKDIR waveview
RUN ./configure
RUN make
RUN cp src/gaw /opt/cad/bin
# TODO(edward.bingham) setup vnc
# TODO(edward.bingham) setup network mounted tech folder
# install go
WORKDIR /toolsrc
RUN apt-get -y install wget
@ -112,18 +82,52 @@ RUN tar -C /opt -xzf go1.19.1.linux-amd64.tar.gz
RUN apt-get install -y python3 pip
# install editors
RUN apt-get install -y vim
# setup home directory template and install vim plugins
WORKDIR "/"
ADD home template
RUN apt-get install -y vim
RUN mkdir -p /template/.vim/pack/plugins/start
RUN git clone https://github.com/fatih/vim-go.git /template/.vim/pack/plugins/start/vim-go
RUN git clone https://tpope.io/vim/fugitive.git /template/.vim/pack/plugins/start/fugitive
RUN git clone https://github.com/preservim/nerdtree.git /template/.vim/pack/plugins/start/nerdtree
# install gaw
RUN apt-get update --fix-missing; apt-get install -y libgtk-3-dev libcanberra-gtk3-module
WORKDIR /toolsrc
RUN --mount=type=secret,id=user --mount=type=secret,id=token git clone https://$(cat /run/secrets/user):$(cat /run/secrets/token)@git.broccolimicro.io/Broccoli/waveview.git
WORKDIR waveview
RUN ./configure
RUN make
RUN make install
# install magic layout tool
WORKDIR /toolsrc
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tcsh m4 csh libx11-dev tcl-dev tk-dev libcairo2-dev mesa-common-dev libglu1-mesa-dev libncurses-dev
RUN git clone https://github.com/RTimothyEdwards/magic.git
WORKDIR magic
RUN ./configure
RUN make
RUN make install
# install prspice
WORKDIR /toolsrc
RUN git clone https://github.com/nbingham1/prspice.git
WORKDIR prspice
RUN git checkout xyce
RUN make
RUN cp prdbase prspice /opt/cad/bin
# install pr
WORKDIR /toolsrc
RUN --mount=type=secret,id=user --mount=type=secret,id=token git clone https://$(cat /run/secrets/user):$(cat /run/secrets/token)@git.broccolimicro.io/Broccoli/pr.git
RUN cp pr/* /opt/cad/bin
# install OpenRoad
#WORKDIR /toolsrc
#RUN git clone https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts.git
#WORKDIR OpenROAD-flow-scripts
# Clean up source code folder
RUN rm -rf /toolsrc
#RUN rm -rf /toolsrc
# Connect user home directory of host machine
RUN mkdir "/host"

View File

@ -1,2 +1,5 @@
all:
DOCKER_BUILDKIT=1 docker build . --secret id=user,src=.secret/user --secret id=token,src=.secret/token -t git.broccolimicro.io/broccoli/development-environment:latest
DOCKER_BUILDKIT=1 docker build --secret id=user,src=.secret/user --secret id=token,src=.secret/token -t git.broccolimicro.io/broccoli/development-environment:latest .
local:
DOCKER_BUILDKIT=1 docker build --secret id=user,src=.secret/user --secret id=token,src=.secret/token -t git.broccolimicro.io/broccoli/development-environment:latest --add-host=git.broccolimicro.io:10.0.0.65 .

View File

@ -5,6 +5,12 @@ Setup the broccoli command line interface with the following command.
source bcli-develop.sh
```
Set up your ssh connection to the technology node server, it is preferrable to set up an ssh key.
```
export BROCCOLI_USER="nbingham"
bcli mount
```
Download the developement environment and boot it up in docker
```
bcli up
@ -30,7 +36,8 @@ Finally, vim is fully set up for both golang and act
vim file.act
```
When you are done, you can shut down the development environment.
When you are done, you can shut down the development environment and disconnect the technology server.
```
bcli down
bcli unmount
```

View File

@ -1,10 +1,16 @@
bcli() {
if [ "$1" = "up" ]; then
docker run -d -v $HOME:/host --rm --name "bcli-develop" -h "bcli-develop" -e USER=$USER -e USER_ID=$(id -u) -e GROUP_ID=$(id -g) git.broccolimicro.io/broccoli/development-environment:latest > /dev/null
docker run -d -v $HOME:/host --rm --name "bcli-develop" -h "bcli-develop" -e USER=$USER -e USER_ID=$(id -u) -e GROUP_ID=$(id -g) -e DISPLAY=$DISPLAY -v "/tmp/.X11-unix:/tmp/.X11-unix:rw" git.broccolimicro.io/broccoli/development-environment:latest > /dev/null
echo "bcli-develop started"
elif [ "$1" = "down" ]; then
docker stop bcli-develop > /dev/null
echo "bcli-develop stopped"
elif [ "$1" = "mount" ]; then
mkdir -p $HOME/tech
sshfs $BROCCOLI_USER@broccolimicro.io:/opt/tech $HOME/tech/
elif [ "$1" = "unmount" ]; then
umount $HOME/tech
rmdir $HOME/tech
else
docker exec -u $(id -u):$(id -g) -it bcli-develop /bin/bash
fi