Add images.json with auto readme and pre-commit

This commit is contained in:
Jake Walker 2024-11-11 19:00:41 +00:00
parent baf11c50a7
commit feebee5c42
5 changed files with 73 additions and 5 deletions

View file

@ -6,14 +6,22 @@ on:
- cron: "0 18 * * 1"
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- id: set-matrix
run: "echo \"matrix=$(jq -cr '{image: [.[] | {name, context, dockerfile}]}' images.json)\" >> $GITHUB_OUTPUT"
build_image:
runs-on: ubuntu-latest
needs: prepare
strategy:
matrix:
image:
- name: "beeper_bridge-manager"
context: ./beeper_bridge-manager
dockerfile: ./beeper_bridge-manager/docker/Dockerfile
matrix: ${{ fromJson(needs.prepare.outputs.matrix) }}
steps:
- name: Checkout
uses: actions/checkout@v4

15
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,15 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: local
hooks:
- id: generate-readme
name: Generate README
entry: python generate-readme.py
language: python
pass_filenames: false
files: ^images\.json$

9
README.md Normal file
View file

@ -0,0 +1,9 @@
# Docker Images
These are some custom images that are regularly built for AMD64 and ARM64 architectures.
<!-- generate start -->
| Name | Description |
| --- | --- |
| `ghcr.io/jake-walker/beeper_bridge-manager` | This is an exact build of Beeper's [bridge-manager](https://github.com/beeper/bridge-manager) but with an ARM64 build. |
<!-- generate end -->

28
generate-readme.py Executable file
View file

@ -0,0 +1,28 @@
import json
with open("README.md", "r") as f:
readme = f.read()
with open("images.json", "r") as f:
images_data = json.load(f)
with open("README.md", "w") as f:
copying = True
for line in readme.splitlines():
if line == "<!-- generate start -->":
f.write(line + "\n")
# generate markdown table of images
f.write("| Name | Description |\n| --- | --- |\n")
for image in images_data:
f.write(
f"| `ghcr.io/jake-walker/{image['name']}` | {image['description']} |\n"
)
copying = False
elif line == "<!-- generate end -->":
f.write(line + "\n")
copying = True
elif copying:
f.write(line + "\n")

8
images.json Normal file
View file

@ -0,0 +1,8 @@
[
{
"name": "beeper_bridge-manager",
"context": "./beeper_bridge-manager",
"dockerfile": "./beeper_bridge-manager/docker/Dockerfile",
"description": "This is an exact build of Beeper's [bridge-manager](https://github.com/beeper/bridge-manager) but with an ARM64 build."
}
]