-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Continuous Integration, releases and ready-to-use rolling images #477
Comments
I don't like splitting up the documentation. For now, you should finish our documention rework started almost a year ago. |
I think it is getting too long...
It is my bad, I thought it was partially merged. Indeed, it was almost ready, so I rebased and cleaned it up. See #482. |
I think it is ready to be reviewed now. At least Use cases for the actually available images, Let's have some fun! and Extending base images. @flip111 @Nic30 the second demo is an example of how to get "parsing" info from GHDL. In the screen recording the VCD is used only, but you can see that many
@Paebbels , please, let me know if any of the images fits your needs to run GHDL in CI environments. |
@1138-4eb I'm currently out of sync in many of my projects. I try to get them in sync in the Christmas holidays. |
I moved some of the content from this issue to the new ghdl/docker repo. See: README.md, USE_CASES.md and ghdl/docker#2. Some other content was moved to 1138-4EB/ghdl-io (see 1138-4EB/ghdl-io#1). |
Use cases for the actually available images
,Let's have some fun! [use GHDL live/local/ci demo]
andExtending base images
are now available at USE_CASES.md.Packing
is available at Packing artifacts docker#2.Documentation overhaul
andProject organization
were moved to 1138-4EB/ghdl-io#1. These are being discussed in Landing site for GHDL #506.Table of contents
Maintainability
extended
). Have travis automatically trigger a build of branchextended
every time a build of branchmaster
is successful.See 1138-4EB/ghdl-io#1 and #506.
More to come
I believe that having rolling docker images is a major feature for the project. Yet, it is not good enough for my target audience, which are new/young users with little to no contact with digital design. Forcing them to use the shell (say vim, nano, emacs...) is not the best starting point.
ghdl/ext:vunit-gtkwave
is the first step to make it easier. The launch script automatically mounts the current path in the container, and the X socket is shared, so that GUI applications can be run (i.e. gtkwave). The user can move and edit files with the tools in the host (file explorer, dolphin, nautilus, gedit, notepad++...). Still, the console is required to run the scripts, but VUnit makes a pretty good job simplifying it.However, an X server is required in order to run
ghdl/ext:vunit-gtkwave
. This makes it slightly more difficult to use it on a remote host (say play-with-docker or a machine in the lab). Sure, SSH can be used to forward the required ports, but it requires to set up users and keys in the remote machine.There are some interesting projects that can be integrated to provide a functional web-based IDE. Indeed, there is a very interesting discussion going on in #111.
I was about to sketch a very basic editor with a file manager and codemirror, when I found eclipse/che. It is a really promising evolution of eclipse/ide. Basically it is a stack composed of multiple orchestrated docker containers with a pretty easy entrypoint:
docker run eclipse/che start
.I tried it locally and it is sooooo slow to spin up. It downloaded 10 different images (1.5GB total) to create an empty machine with a blank project. I usually create and remove multiple workspaces every day, and it would make me lose my patience. However, I love the look and feel. Xilinx's SDK is based on Eclipse, so it is quite familiar to users that approach hardware design from an embedded software point of view (I haven't checked if Xilinx projects can actually be used in eclipse/che). Sigasi, which is the reference many of us have in mind when thinking about possible free tools for VHDL design, is also based on Eclipse.
Anyway, the main point is that it works. Just spin it up, create a stack with a single machine based on
ghdl/ext:vunit
and you are ready to go. Love it:![ghdl_pwd_demo_eclipseche] There is currently a bug when using eclipse/che in PWD (eclipse/che#3595). I can record a screencast locally, but I'd rather wait to make it clear that there is no 'trick' (i.e. hidden setup or configuration steps).
Note that when the stack is defined, predefined commands can be added. Then the user will have quick access buttons/actions to run, test, deploy...
Tasks
Future work
Merged/done
GHDL 0.35-dev (<tarball>) [Dunoon edition]
. ([build-system] do not require git in the Makefile #480)PR #489
dist/linux/docker/build-<platform>-<compiler>
files todist/linux/docker/build/<platform>
dist/linux/docker/build/<platform>
and adddist/linux/docker/run/<platform>
ghdl/build
ghdl/run
ghdl/ghdl
ghdl/ext
ghdl/pkg
Create build|run images
[ci images]
test
[default]dist/linux/travis/buildtest.sh
todist/linux/travis/build.sh
anddist/linux/travis/test.sh
ghdl/build
instead of buiding it from the Dockerfileghdl/build
ghdl/run
ghdl/ghdl
fromghdl/run
and add the tarball generated in the build taskghdl/ghdl
ghdl/pkg
ghdl/ghdl
andghdl/pkg
(if exists)dist/linux/travis/travis-enc-dockerhub.sh
PR #583
The text was updated successfully, but these errors were encountered: