Responsible for collecting GitHub Actions workflow_run
webhook data and providing a web dashboard with recent CI build
status. Put this on a TV in your office.
Usage:
- Webhooks and secrets
- Adding configs to show specific repos on dashboards
- Xbar for local machine, useful for remote working employees without dedicated dashboard monitors.
- Deleting CI statuses to clean up statuses you don't want.
Development:
- Requirements (Norwegian)
- Solution specification/architecture (Confluence)
- Overview of the design process (Confluence)
You need to install:
- Docker
- Maven (or run maven through IntelliJ)
- JDK 17
brew tap homebrew/cask-versions
and thenbrew install --cask temurin17
- Authenticate to Github Packages for internal maven repos.
- Create an
overrides.properties
by running./init-local-env.sh
- Install ktfmt plugin to IntelliJ
- Start the
db
in docker-compose.yml - Run the main method from intelliJ
- Watch the logs for which port is being used.
- Visit
http://localhost:PORT/?token=TOKEN_HERE
You can test the API with src/test/http/health.http, webhook.http.
mvn verify
- Add
-DskipTests
tomvn
to disable all tests. - Add
-DskipITs
to only disable integration tests. - Add
-DREGENERATE_FAILED_SNAPSHOTS=true
to update snapshot tests.
Only check lint: mvn spotless:check
Fix: mvn spotless:apply
- Make sure you run init-local-env.sh to get hot-reload enabled.
- There is a "test" called DevelopmentAid that you can start to open a website preloaded with data.
- Then modify the css in index.hbs.
- Refresh the page.
Push the master branch.
You can track the progress
in GitHub Actions
and in
the AWS CodePipeline (liflig-experiments
).
Copyright 2025 Liflig AS (org.nr. 925906093)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.