.github
Gemeinsame Community-Dateien und sieben wiederverwendbare GitHub-Actions-Workflows für die Repositories unter muhittincamdali.
Lizenz: MIT
GitHub wendet den Contributing Guide, den Code of Conduct, die Security Policy, den Support Guide, die Issue-Formulare und die Pull-Request-Vorlage aus diesem Repository auf jedes Repository an, das keine eigene Kopie hat. Daneben gibt es sieben wiederverwendbare Workflows, die andere Repositories per workflow_call aufrufen: Swift-Package-Build und -Test mit optionalem xcodebuild pro Apple-Plattform, DocC nach GitHub Pages, Flutter, Node.js, lychee-Linkprüfungen, eine README-Übersetzungsprüfung und ein Hygiene-Scan für Dateien und Commit-Nachrichten. Jede Action ist auf einen vollständigen Commit-SHA festgelegt, jeder Job verlangt nur die Berechtigungen, die er braucht, und aufrufende Repositories pinnen die Workflows auf einen getaggten Commit, den Dependabot aktuell hält.
Funktionen
- swift-ci: swift build --build-tests und swift test, dazu eine optionale xcodebuild-Matrix für iOS, macOS, Mac Catalyst, tvOS, watchOS und visionOS
- docc-pages: baut DocC mit xcodebuild docbuild, führt mehrere Module zu einer Site zusammen und veröffentlicht sie auf GitHub Pages
- flutter-ci und node-ci: format, analyze und test für Flutter; Installation aus der Lockfile mit npm oder pnpm sowie die vorhandenen lint-, typecheck-, test- und build-Skripte, auf mehreren Node.js-Versionen
- links: lychee-Link- und #anchor-Prüfung mit einem Ein-Tages-Cache und einer gemeinsamen Standardkonfiguration
- readme-i18n-sync: jede README.<lang>.md nennt den Git-Blob der englischen README, die sie übersetzt; Codeblöcke und URLs müssen übereinstimmen, solange sie die aktuelle Version für sich beansprucht
- hygiene: weist Tool-Namen, nicht verifizierbare Superlative und ausgemusterte Slogans in verfolgten Dateien und in gepushten Commits zurück, mit einer Allow-List pro Repository
- Actions, die auf vollständige Commit-SHAs festgelegt sind, Berechtigungen pro Job, persist-credentials: false und Concurrency-Gruppen, die veraltete Pull-Request-Läufe abbrechen
- Das Repository prüft sich selbst mit actionlint (mit shellcheck), hygiene und links
Schnellstart
1name: CI2 3on:4 push:5 branches: [main]6 pull_request:7 8permissions: {}9 10jobs:11 swift:12 permissions:13 contents: read14 uses: muhittincamdali/.github/.github/workflows/swift-ci.yml@<sha> # v115 with:16 platforms: '["iOS", "macOS", "tvOS", "watchOS", "visionOS"]'17 18 hygiene:19 permissions:20 contents: read21 uses: muhittincamdali/.github/.github/workflows/hygiene.yml@<sha> # v1Installation
Call a workflow from a repository
1jobs:2 swift:3 permissions:4 contents: read5 uses: muhittincamdali/.github/.github/workflows/swift-ci.yml@<sha> # v16 with:7 platforms: '["iOS", "macOS", "tvOS", "watchOS", "visionOS"]'Zeitleiste
Repository eröffnet mit den gemeinsamen Community-Dateien und sechs wiederverwendbaren Workflows (swift-ci, docc-pages, flutter-ci, node-ci, links, hygiene), danach die README-Übersetzungsprüfung; getaggt als v1 und v1.0.0
v1.1.0: docc-pages erhält den optionalen Input skip-synthesized-members, damit ein Package mit vielen SwiftUI-Views auf GitHub Pages passt