|
| 1 | +# Obelisk Version Monitor |
| 2 | + |
| 3 | +An [Obelisk](https://obeli.sk/) application that monitors the Obelisk version |
| 4 | +pinned by public repositories in the |
| 5 | +[`obeli-sk`](https://github.com/obeli-sk) organization. |
| 6 | + |
| 7 | +The dashboard can: |
| 8 | + |
| 9 | +- show the version from each repository's `dev-deps.txt`; |
| 10 | +- dispatch its `sync-flake-lock.yml` GitHub Actions workflow; |
| 11 | +- track the Obelisk activity and GitHub Actions run; |
| 12 | +- find the resulting ``Sync `flake.lock` from upstream`` pull request; |
| 13 | +- display pull request checks; and |
| 14 | +- merge a passing pull request through an audited Obelisk activity. |
| 15 | + |
| 16 | +## Dashboard |
| 17 | + |
| 18 | +The dashboard is served by the `show` webhook endpoint. It polls JSON status |
| 19 | +without reloading the page. |
| 20 | + |
| 21 | +| Repository | obelisk version | Action | GH Action | PR | |
| 22 | +| --- | --- | --- | --- | --- | |
| 23 | +| benchmark-fibo | `0.38.3` | Run sync-flake-lock | GH: completed: success | #62 open, checks: passing, Merge | |
| 24 | +| components | `0.38.2` | Run sync-flake-lock | GH: in progress | #96 open, checks: in progress | |
| 25 | +| webui | `0.38.2` | Run sync-flake-lock | GH: completed: success | #86 merged | |
| 26 | + |
| 27 | +Each Obelisk activity displays its execution ID. GitHub Actions runs and pull |
| 28 | +requests link to GitHub. |
| 29 | + |
| 30 | +## Development |
| 31 | + |
| 32 | +Enter the development shell: |
| 33 | + |
| 34 | +```sh |
| 35 | +nix develop |
| 36 | +``` |
| 37 | + |
| 38 | +Set a GitHub token with permission to dispatch workflows and merge pull |
| 39 | +requests: |
| 40 | + |
| 41 | +```sh |
| 42 | +export GH_TOKEN="$(gh auth token)" |
| 43 | +``` |
| 44 | + |
| 45 | +Verify the deployment: |
| 46 | + |
| 47 | +```sh |
| 48 | +obelisk server verify \ |
| 49 | + --deployment deployment.toml \ |
| 50 | + --ignore-missing-env-vars \ |
| 51 | + --skip-db |
| 52 | +``` |
| 53 | + |
| 54 | +Apply it to a running local server: |
| 55 | + |
| 56 | +```sh |
| 57 | +obelisk deployment apply deployment.toml |
| 58 | +``` |
| 59 | + |
| 60 | +With the default server configuration, the dashboard is available at |
| 61 | +<http://127.0.0.1:9090/>. |
| 62 | + |
| 63 | +## Automation |
| 64 | + |
| 65 | +- `check.yml` regenerates `dev-deps.txt` and fails if it is stale. |
| 66 | +- `sync-flake-lock.yml` copies `flake.lock` from Obelisk's `latest` branch, |
| 67 | + regenerates `dev-deps.txt`, and opens a pull request. |
| 68 | + |
| 69 | +The sync workflow requires the repository secret `GH_TOKEN_PR_RW` with |
| 70 | +permission to push a branch and open a pull request. |
0 commit comments