Giter VIP home page Giter VIP logo

gnuradio-web's People

Contributors

marcnewlin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gnuradio-web's Issues

[build][CI/CD] enable each time push will generate a new page to test

I wonder if there are some ways to do unit/smoke tests, seems it's hard to do this.

And we need to deploy a new page through GitHub Action to display the result in each push/pull request event to be triggered (work as CI/CD) which will enable more people to join this project.

Also, referring to this, there are 2 major ways to build gr-web in GitHub Action

  1. we build whole docker images each time if push/pr or another event is to be triggered.
  2. we are using different jobs to specify which image should be rebuilt, well the other will be stored in the docker hub which will save huge time.

I intend to work the last way. Which need to support 2 things, one for display pages (just pull from docker hub), another for modifying docker in docker hub (if community someone modifies the docker file with a feature enhancement )

edit2:

Back to the last way, there 2 deeper thinking based on which image we place in the docker hub:

  • 2.1 We only push gnuradio this image to the docker hub
  • 2.2 We push the different images to docker hub (like volk, CPython, pyqt, boost, etc), this way maybe more save time but will suffer an interesting consistency problem(more in below hide HTML) and can be handled with "each time we modify the base image, we need re-compile and push to docker hub the high-level image's latest version." which result actually the saved time it depends on the re-compile time. Here is a reference about using cache to accelerate CI workflow.
interesting build problem

premise:

And for some python script modifications, we only need to pull the gnuradio image to generate the newer version js data.
Obviously, there exist topological order between different docker build base container. For example: if we wanna build volk, we need to get CPython first.

traditional case:

Consider there are 2 pr that will need to run GitHub action (one will modify CPython.dockerfile to generate debug version CPython, and another one will modify the flowgraph.py)

for the first one, the GitHub actions have concerned this push/pr will modify the CPython this image, it will rebuild the image and push to hub docker.

for the second one: the GitHub action just need to pull gnuradio, and it will pull from the docker hub to get the latest image. it's unaware for the gnuradio image actually needs re-compile with a debug version CPython image.

conclusion

So each image to be modified and then the other later/over this layout image should also be re-compiled and pushed to docker hub. Here are exist other ways to cache or accelerate in the newer image building.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.