.github
Archivos de comunidad compartidos y siete workflows reutilizables de GitHub Actions para los repositorios de muhittincamdali.
Licencia: MIT
GitHub aplica la guía de contribución, el código de conducta, la política de seguridad, la guía de soporte, los formularios de issue y la plantilla de pull request de este repositorio a todos los repositorios que no tienen una copia propia. Junto a ellos hay siete workflows reutilizables que otros repositorios invocan con workflow_call: build y test de paquetes Swift con xcodebuild opcional por plataforma Apple, DocC a GitHub Pages, Flutter, Node.js, comprobación de enlaces con lychee, una comprobación de traducción del README y un escaneo de higiene para archivos y mensajes de commit. Cada action está fijada a un SHA de commit completo, cada job solo pide los permisos que necesita, y quienes lo invocan fijan los workflows a un commit etiquetado que Dependabot mantiene actualizado.
Características
- swift-ci: swift build --build-tests y swift test, además de una matriz opcional de xcodebuild para iOS, macOS, Mac Catalyst, tvOS, watchOS y visionOS
- docc-pages: compila DocC con xcodebuild docbuild, combina varios módulos en un solo sitio y lo despliega en GitHub Pages
- flutter-ci y node-ci: format, analyze y test para Flutter; instalación desde el lockfile con npm o pnpm y los scripts de lint, typecheck, test y build que existan, en varias versiones de Node.js
- links: comprobación de enlaces y anclas #anchor con lychee, con una caché de un día y una configuración predeterminada compartida
- readme-i18n-sync: cada README.<lang>.md indica el blob de git del README en inglés que traduce; los bloques de código y las URL deben coincidir mientras afirme traducir la versión actual
- hygiene: rechaza nombres de herramientas, superlativos no verificables y eslóganes retirados en los archivos rastreados y en los commits que se suben, con una lista de permitidos por repositorio
- Actions fijadas a SHA de commit completos, permisos por job, persist-credentials: false y grupos de concurrencia que cancelan ejecuciones obsoletas de pull request
- El repositorio se comprueba a sí mismo con actionlint (con shellcheck), hygiene y links
Inicio rápido
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> # v1Instalación
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"]'Cronología
Repositorio abierto con los archivos de comunidad compartidos y seis workflows reutilizables (swift-ci, docc-pages, flutter-ci, node-ci, links, hygiene), luego la comprobación de traducción del README; etiquetado v1 y v1.0.0
v1.1.0: docc-pages recibe la entrada opcional skip-synthesized-members, para que un paquete con muchas vistas SwiftUI quepa en GitHub Pages