Ein Blog

Posts mit Tag "github"

GitHub hat jetzt Agentic Workflows. Das sind Markdown-Files mit einer Yaml-Frontmatter, die Tasks definieren, dei automatisch von irgendeinem LLM getätigt werden sollen. Sie betonen sehr die “Guardrail”-Features. Definieren tut man Permissions in der Frontmatter, die ähnlich zu den normalen Workflows aussehen.

Hier deren Beispiel-Workflow für etwas, was täglich einen Status-Report macht:

---
on:
  schedule: daily
permissions:
  contents: read
  issues: read
  pull-requests: read
safe-outputs:
  create-issue:
    title-prefix: "[team-status] "
    labels: [report, daily-status]
    close-older-issues: true
---

## Daily Issues Report

Create an upbeat daily status report for the team as a GitHub issue.

## What to include

- Recent repository activity (issues, PRs, discussions, releases, code changes)
- Progress tracking, goal reminders and highlights
- Project status and recommendations
- Actionable next steps for maintainers

Wenn ich den ono-Block so sehe, geht das dann wahrscheinlich auch bei allen üblichen Event-Triggern, die GH Actions so können. Könnte man also wahrscheinlich auch als Basistechnologie für automatisierte Code-Reviews nehmen (falls wman von denen im aktuellen Zustand etwas hält).

GitHub hat jetzt einen neuen Runner in der Preview: ubuntu-slim. Hat nur 1 vCPU und “nur” 4GB RAM. Läuft nicht in einer VM, wie alle anderen Runner, sondern in einem Container.

Kostet aktuell 0.002$, ubuntu-latest ist bei 0.008$; also 1/4 der Kosten.

Gedacht ist der Runner für Automatisierungs-Tasks, für die ein “fetter” Standard-Runner zu overkill ist. GitHub rechnet ja pro angefangener Minute ab, also gehen für solche Automatisierungen mindestens 0.8 Cent pro Ausführung weg. Wenn man etwas beim Push laufen hat, am besten noch in einer Testmatrix, liegt man da schon bei ein paar Cent pro Push. In letzter Zeit wurde das bei mir so viel, dass ich sogar mein Spending-Limit erhöhen musste.

Jetzt hab ich fast alle Jobs auf ubuntu-slim umgestellt. Zumindest da, wo es geht. Da der Runner selbst in Docker läuft und sie den Docker-Socket nicht in den Container exposen, kann man da drin keine Images bauen (vielleicht mit Podman, hab ich noch nicht probiert). Bei Rust-Projekten könnte es auch schwierig werden, weil die Laufzeit des Slim-Runners auf 15 Minuten begrenzt ist. Das sehe ich als Feature, weil ein Task grundsätzlich nicht so lange dauern sollte (es sei denn, man benutzt einen Compiler, der halt ewig braucht; Rust). Und wenn der Runner mal wieder buggt und in irgendeinem Loop festhängt, kostet einem das nicht mehrere Stunden, die es braucht, bis der Runner timeoutet.

Gute Sache. Sie hätten das viel früher zusätzlich anbieten sollen. Es gibt Leute, die updaten alle 30 Minuten ihr README im Profil, wofür GitHub jedes mal eine VM mit 4 Kernen und 16 GB RAM hochfährt. Das ist einfach komplett unsinnig. Das README so oft zu updaten ist natürlich immer noch unsinnig, aber immerhin kann man dabei jetzt ein bisschen weniger Ressourcen verbrauchen.

Any program can be a GitHub Actions shell.

Man kann damit auch Parameter von Bash setzen. Hier global als Default:

defaults:
  run:
    shell: bash -euxo pipefail {0}