Coder Social home page Coder Social logo

ephigenia / circleboard2 Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 5.0 5.29 MB

tabular display of the most recent builds on circleci for use as build monitor dashboard display.

Home Page: https://circleboard2.herokuapp.com/

License: MIT License

HTML 27.71% JavaScript 4.38% TypeScript 65.51% CSS 1.20% Dockerfile 1.20%
circleci dashboard continuous-integration build status-board monitor continuous-delivery continuous-deployment dashboard-display

circleboard2's Introduction

Simple, responsive angular6 web-application which shows circleci and gitlab builds, pipelines and workflows in a auto-refreshing, fully configurable dashboard with zero configuration files.

MIT License CircleCI Known Vulnerabilities Maintainability

Features

Screenshot of Circleboard (dark mode) in Action from 2018-06-15

  • show builds from different circleci accounts and gitlab projects
  • zero configuration files
  • inject configuration via GET parameters or user config page
  • optional grouping of builds in pipelines aka workflows
  • light and dark mode
  • message when device/client goes offline

There are several ideas for upcoming features or allready finished ones in the wiki. If something doesn’t work please create an issue.

Demo

The latest version of this is running on https://circleboard2.herokuapp.com/ where you can set you own CircleCi API Token using the gear icon in the main navigation bar and use it as your dashboard.

Deployment & Use

Web-application

The "master" and "development" branch are always automatically deployed to their heroku environments. As the whole application comes with zero configuration you can use these deployments as is and inject your configuration via the GET variables.

Heroku

If you’re planning to run you own instance on heroku: Deploy CircleBoard on Heroku

Docker

The repo is dockerized and a production ready docker container can be created (requires docker 1.17 or later):

docker build --no-cache --pull -t circleboard:latest .

Start docker container

docker run -it --rm --publish 4000:80 circleboard:latest

Then your docker container is available at http://localhost:4000

Dashboard Display

Using a Raspberry Pi3 as permanent dashboard display in your office space is very easy. Setup the Pi with standard noobs and use the pre-installed chrome show the circleboard on one of the heroku deployments after startup.

Just change the x startup configuration as follows:

# /home/pi/.config/lxsession/LXDE-pi/autostart

# deactivated default lines
#@lxpanel --profile LXDE-pi
#@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
#@point-rpi

# now the new lines:
# disable sleep mode
@xset s off
@xset -dpms
@xset s noblank

# hide cursor
# requires "unclutter" to be installed
#   sudo apt-get install unclutter
# hide for 3 seconds inactivity
@unclutter -display :0 -idle 3 -root -noevents

# read about supported comamnd line arguemnts:
# https://peter.sh/experiments/chromium-command-line-switches/
@chromium-browser --noerrdialogs --incognito --disable-infobars --kiosk http://circleboard2.herokuapp.com/?apiToken=<your-api-token>&groupWorkflows=true&refreshInterval=15&fontSize=18

Rotation of the screen can also be set to be able to show builds in portrait mode

# /boot/config.txt
# only works when "legacy" screen driver was selected, doesn’t work
# when dtoverlay=vc4-kms-v3d is set, rotate 90° clockwise
display_rotate=1
# or with newer firmware
display_hdmi_rotate=1

Development

Requirements

  • nodejs version is documented in .nvmrc If you don’t have that version installed, use nvm

Run Dev Server

Run npm start for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Tests

Run npm run test to execute the unit tests via Karma.

Run npm run tdd to execute the unit tests while watching for changes and run them again.

Dist

Run npm run build to build the project. The build artifacts (static version of the applicatoin) will be stored in the dist/ directory. Use the -prod flag for a production build.

Releasing

Releasing a new version can be done using the "version" command from npm. This command is configured in the package.json to run all tests, create the changelog, bump the version and then push all those updates as a new tag to the remote.

npm version

Make sure you’re using properly formatted commit messages like specified in the angular commit guidelines so that the changelog can be generated properly.

circleboard2's People

Contributors

ephigenia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

circleboard2's Issues

Page not found for recent-builds

When running the board in Docker, the initial loading will show the pipelines just fine, but when reloading the page I get an nginx error 404 Not Found. This happens because of the recent-builds that is appended. When going back to the main page without recent-builds, (http://localhost:4000) then the page works again.

add formatter for duration

it would be nice not to see 141.25s but 2m 21s so there shoudl be a formatter for time durations used in the duration in the table

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.