すべてのオープンソースパッケージ
インフラYAML

.github

muhittincamdali 配下のリポジトリ向けに共有するコミュニティファイルと、7つの再利用可能な GitHub Actions ワークフロー。

0スター数最新リリース: v1.1.0更新日: 2026年10月14日
対応プラットフォーム:GitHub Actions

ライセンス: MIT

GitHub は、このリポジトリにあるコントリビューションガイド、行動規範、セキュリティポリシー、サポートガイド、issue フォーム、pull request テンプレートを、独自のコピーを持たないすべてのリポジトリに適用します。その横には、他のリポジトリが workflow_call で呼び出す7つの再利用可能なワークフローがあります: 各 Apple プラットフォーム向けの xcodebuild を任意で使った Swift package のビルドとテスト、DocC から GitHub Pages への公開、Flutter、Node.js、lychee によるリンクチェック、README の翻訳チェック、ファイルとコミットメッセージを調べる hygiene スキャンです。すべての action はフルコミット SHA に固定され、各 job は必要な権限のみを要求し、呼び出し側は Dependabot が最新に保つタグ付きコミットにワークフローを固定します。

機能

  • swift-ci: swift build --build-tests と swift test に加え、iOS、macOS、Mac Catalyst、tvOS、watchOS、visionOS 向けの任意の xcodebuild マトリクス
  • docc-pages: xcodebuild docbuild で DocC をビルドし、複数のモジュールを1つのサイトにまとめて GitHub Pages にデプロイ
  • flutter-ci と node-ci: Flutter の format、analyze、test に加え、npm または pnpm によるロックファイルからのインストールと、複数の Node.js バージョンで存在する lint、typecheck、test、build スクリプトの実行
  • links: 1日間のキャッシュと共有デフォルト設定による lychee のリンクおよび #anchor チェック
  • readme-i18n-sync: 各 README.<lang>.md は翻訳元である英語版 README の git blob を記載し、最新版を翻訳済みと主張する間はコードブロックと URL が一致している必要があります
  • hygiene: 追跡対象のファイルおよび push されるコミットに含まれるツール名、検証できない最上級表現、使われなくなったスローガンを拒否します。リポジトリごとの許可リストあり
  • フルコミット SHA に固定された action、job ごとの権限、persist-credentials: false、古い pull request の実行をキャンセルする concurrency グループ
  • このリポジトリ自体も actionlint (shellcheck 併用)、hygiene、links でチェックしています

クイックスタート

yaml
1name: CI
2 
3on:
4 push:
5 branches: [main]
6 pull_request:
7 
8permissions: {}
9 
10jobs:
11 swift:
12 permissions:
13 contents: read
14 uses: muhittincamdali/.github/.github/workflows/swift-ci.yml@<sha> # v1
15 with:
16 platforms: '["iOS", "macOS", "tvOS", "watchOS", "visionOS"]'
17 
18 hygiene:
19 permissions:
20 contents: read
21 uses: muhittincamdali/.github/.github/workflows/hygiene.yml@<sha> # v1

インストール

Call a workflow from a repository

yaml
1jobs:
2 swift:
3 permissions:
4 contents: read
5 uses: muhittincamdali/.github/.github/workflows/swift-ci.yml@<sha> # v1
6 with:
7 platforms: '["iOS", "macOS", "tvOS", "watchOS", "visionOS"]'

タイムライン

  1. 共有コミュニティファイルと6つの再利用可能なワークフロー(swift-ci、docc-pages、flutter-ci、node-ci、links、hygiene)でリポジトリを公開し、その後 README 翻訳チェックを追加。v1 と v1.0.0 をタグ付け

  2. v1.1.0: docc-pages にオプトインの skip-synthesized-members 入力が追加され、多数の SwiftUI ビューを持つパッケージでも GitHub Pages に収まるように

リンク

関連記事

記事を読む