.github
Shared community files and seven reusable GitHub Actions workflows for the repositories under muhittincamdali.
License: MIT
GitHub applies the contributing guide, code of conduct, security policy, support guide, issue forms and pull request template in this repository to every repository that has no copy of its own. Next to them are seven reusable workflows that other repositories call with workflow_call: Swift package build and test with optional xcodebuild per Apple platform, DocC to GitHub Pages, Flutter, Node.js, lychee link checks, a README translation check and a hygiene scan for files and commit messages. Every action is pinned to a full commit SHA, every job asks only for the permissions it needs, and callers pin the workflows to a tagged commit that Dependabot keeps current.
Features
- swift-ci: swift build --build-tests and swift test, plus an optional xcodebuild matrix for iOS, macOS, Mac Catalyst, tvOS, watchOS and visionOS
- docc-pages: builds DocC with xcodebuild docbuild, merges several modules into one site and deploys it to GitHub Pages
- flutter-ci and node-ci: format, analyze and test for Flutter; lockfile install with npm or pnpm and the lint, typecheck, test and build scripts that exist, on several Node.js versions
- links: lychee link and #anchor check with a one-day cache and a shared default configuration
- readme-i18n-sync: each README.<lang>.md names the git blob of the English README it translates; code blocks and URLs must match while it claims the current version
- hygiene: rejects tool names, unverifiable superlatives and retired slogans in tracked files and in the commits being pushed, with a per-repository allow list
- Actions pinned to full commit SHAs, per-job permissions, persist-credentials: false and concurrency groups that cancel outdated pull request runs
- The repository checks itself with actionlint (with shellcheck), hygiene and links
Quickstart
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"]'Timeline
Repository opened with the shared community files and six reusable workflows (swift-ci, docc-pages, flutter-ci, node-ci, links, hygiene), then the README translation check; tagged v1 and v1.0.0
v1.1.0: docc-pages gets the opt-in skip-synthesized-members input, so a package with many SwiftUI views fits on GitHub Pages