{"id":43889281,"url":"https://github.com/space-code/build-docc","last_synced_at":"2026-02-06T16:29:03.053Z","repository":{"id":326220681,"uuid":"1104352486","full_name":"space-code/build-docc","owner":"space-code","description":"Build Swift DocC documentation with versioning support","archived":false,"fork":false,"pushed_at":"2025-11-26T14:14:36.000Z","size":269,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-29T10:32:17.400Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/space-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-26T05:11:44.000Z","updated_at":"2025-11-26T14:13:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/space-code/build-docc","commit_stats":null,"previous_names":["space-code/build-docc"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/space-code/build-docc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-code%2Fbuild-docc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-code%2Fbuild-docc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-code%2Fbuild-docc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-code%2Fbuild-docc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/space-code","download_url":"https://codeload.github.com/space-code/build-docc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-code%2Fbuild-docc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29168300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T15:38:29.831Z","status":"ssl_error","status_checked_at":"2026-02-06T15:37:48.592Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-06T16:29:02.236Z","updated_at":"2026-02-06T16:29:03.037Z","avatar_url":"https://github.com/space-code.png","language":null,"readme":"![A GitHub Action for generating Swift DocC documentation](https://raw.githubusercontent.com/space-code/build-docc/main/resources/build-docc.png)\n\n\u003ch1 align=\"center\" style=\"margin-top: 0px;\"\u003ebuild-docc\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/space-code/build-docc/blob/main/LICENSE\"\u003e\u003cimg alt=\"Licence\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\"\u003e\u003c/a\u003e \n\u003ca href=\"https://github.com/space-code/build-docc/actions/workflows/ci.yml\"\u003e\u003cimg alt=\"CI\" src=\"https://github.com/space-code/build-docc/actions/workflows/ci.yml/badge.svg?branch=main\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Description\n\nbuild-docc is a GitHub Action for generating Swift DocC documentation with support for multiple schemes and versioning.\n\nThis action builds your DocC archive using Xcode and outputs a static documentation website that you can deploy anywhere (GitHub Pages, S3, etc).\n\n## Features\n\n- 🎯 **Multiple Schemes Support** - Build documentation for multiple frameworks/libraries in one go\n- 📦 **Version Management** - Automatic versioning with option to preserve or replace old versions\n- 🔄 **Flexible Xcode Versions** - Choose any Xcode version for building\n- 🌐 **Static Hosting Ready** - Generates documentation optimized for GitHub Pages or any static hosting\n- 🚀 **Easy Integration** - Simple YAML configuration with sensible defaults\n\n## Table of Contents\n\n- [Quick Start](#quick-start)\n    - [Basic Usage](#basic-usage)\n    - [Complete Example with Deployment](#complete-example-with-deployment)\n- [Inputs](#inputs)\n- [Outputs](#outputs)\n- [Usage Examples](#usage-examples)\n    - [Single Framework](#single-framework)\n    - [Multiple Frameworks](#multiple-frameworks)\n    - [Specific Xcode Version](#specific-xcode-version)\n    - [Without Version Preservation](#without-version-preservation)\n- [Version Management](#version-management)\n    - [Keep Old Versions](#keep-old-versions-default)\n    - [Replace Old Versions](#replace-old-versions)\n- [Deployment to GitHub Pages](#deployment-to-github-pages)\n    - [Complete Workflow](#complete-workflow)\n    - [Enable GitHub Pages](#enable-github-pages)\n- [Generated Structure](#generated-structure)\n- [Advanced Usage](#advanced-usage)\n    - [Using Outputs](#using-outputs)\n    - [Matrix Build for Multiple Projects](#matrix-build-for-multiple-projects)\n- [FAQ](#faq)\n- [Communication](#communication)\n- [License](#license)\n\n## Quick Start\n\n### Basic Usage\n\n```\n- name: Build Documentation\n  uses: space-code/build-docc@v1\n  with:\n    schemes: '[\"MyFramework\"]'\n    version: 'v1.0.0'\n```\n\n### Complete Example with Deployment\n\n```\nname: Generate Documentation\n\non:\n  push:\n    tags:\n      - 'v*'\n\njobs:\n  build-and-deploy:\n    runs-on: macos-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n\n      - name: Build Documentation\n        uses: space-code/build-docc@v1\n        with:\n          schemes: '[\"MyLib\", \"MyUI\"]'\n          version: ${{ github.ref_name }}\n          keep-old-versions: 'true'\n\n      - name: Deploy to GitHub Pages\n        uses: peaceiris/actions-gh-pages@v3\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          publish_dir: ./docs\n          keep_files: true\n```\n\n## Inputs\n\n## 📋 Inputs\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `schemes` | JSON array of schemes to build (e.g. `[\"MyLib\", \"MyUI\"]`) | ✅ Yes | - |\n| `version` | Documentation version (e.g. `v1.0.0`, `latest`) | ❌ No | `latest` |\n| `xcode-version` | Xcode version to use for building | ❌ No | `latest-stable` |\n| `keep-old-versions` | Keep old versions in docs/ directory | ❌ No | `true` |\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `docs-path` | Path to the generated docs folder |\n| `version` | Version used for build |\n\n## Usage Examples\n\n### Single Framework\n\n```yaml\n- uses: space-code/build-docc@v1\n  with:\n    schemes: '[\"MyFramework\"]'\n    version: 'v1.0.0'\n```\n\n### Multiple Frameworks\n\n```yaml\n- uses: space-code/build-docc@v1\n  with:\n    schemes: '[\"CoreLib\", \"UIComponents\", \"Networking\"]'\n    version: ${{ github.ref_name }}\n```\n\n### Specific Xcode Version\n\n```yaml\n- uses: space-code/build-docc@v1\n  with:\n    schemes: '[\"MyFramework\"]'\n    version: 'v2.0.0'\n    xcode-version: '15.0'\n```\n\n### Without Version Preservation\n\n```yaml\n- uses: space-code/build-docc@v1\n  with:\n    schemes: '[\"MyFramework\"]'\n    version: 'latest'\n    keep-old-versions: 'false'\n```\n\n## Version Management\n\nThe action supports two modes for handling documentation versions:\n\n### Keep Old Versions (default)\n\nWhen `keep-old-versions: 'true'` (default):\n- Previous versions remain accessible\n- New version is added alongside existing ones\n- Perfect for maintaining documentation history\n\n```\ndocs/\n├── v1.0.0/\n│   └── MyLib/\n├── v1.1.0/\n│   └── MyLib/\n└── v2.0.0/\n    └── MyLib/\n```\n\n### Replace Old Versions\n\nWhen `keep-old-versions: 'false'`:\n- Previous versions are removed\n- Only the new version is kept\n- Useful for \"latest\" documentation or saving storage\n\n```\ndocs/\n└── latest/\n    └── MyLib/\n```\n\n## Deployment to GitHub Pages\n\n### Complete Workflow\n\n```yaml\nname: Documentation\n\non:\n  push:\n    tags:\n      - 'v*'\n  workflow_dispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\njobs:\n  build-docs:\n    runs-on: macos-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - name: Checkout gh-pages\n        uses: actions/checkout@v4\n        with:\n          ref: gh-pages\n          path: docs\n        continue-on-error: true\n\n      - name: Build Documentation\n        uses: space-code/build-docc@v1\n        with:\n          schemes: '[\"MyFramework\"]'\n          version: ${{ github.ref_name }}\n          keep-old-versions: 'true'\n\n      - name: Deploy to GitHub Pages\n        uses: peaceiris/actions-gh-pages@v3\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          publish_dir: ./docs\n          keep_files: true\n```\n\n### Enable GitHub Pages\n\n1. Go to your repository **Settings** → **Pages**\n2. Set **Source** to \"Deploy from a branch\"\n3. Select **gh-pages** branch and **/ (root)** folder\n4. Save\n\nYour documentation will be available at:\n```\nhttps://your-username.github.io/your-repo/v1.0.0/MyFramework/\n```\n\n## Generated Structure\n\nThe action generates the following structure:\n\n```\ndocs/\n├── v1.0.0/\n│   ├── MyLib/\n│   │   ├── index.html\n│   │   ├── documentation/\n│   │   ├── data/\n│   │   └── css/\n│   └── MyUI/\n│       ├── index.html\n│       └── ...\n└── v2.0.0/\n    └── MyLib/\n        └── ...\n```\n\nEach version contains fully static HTML documentation that can be hosted anywhere.\n\n## Advanced Usage\n\n### Using Outputs\n\n```yaml\n- name: Build Documentation\n  id: docc\n  uses: space-code/build-docc@v1\n  with:\n    schemes: '[\"MyFramework\"]'\n    version: 'v1.0.0'\n\n- name: Archive Documentation\n  run: |\n    tar -czf docs.tar.gz ${{ steps.docc.outputs.docs-path }}\n\n- name: Upload Artifact\n  uses: actions/upload-artifact@v4\n  with:\n    name: documentation-${{ steps.docc.outputs.version }}\n    path: docs.tar.gz\n```\n\n### Matrix Build for Multiple Projects\n\n```yaml\njobs:\n  docs:\n    runs-on: macos-latest\n    strategy:\n      matrix:\n        project:\n          - name: 'Project A'\n            schemes: '[\"LibA\", \"UtilsA\"]'\n          - name: 'Project B'\n            schemes: '[\"LibB\"]'\n    steps:\n      - uses: actions/checkout@v4\n      \n      - name: Build ${{ matrix.project.name }}\n        uses: space-code/build-docc@v1\n        with:\n          schemes: ${{ matrix.project.schemes }}\n          version: ${{ github.ref_name }}\n```\n\n## FAQ\n\n### How do I find my scheme names?\n\n```bash\n# For Swift Package Manager\nswift package describe | grep \"Name:\"\n\n# For Xcode projects\nxcodebuild -list\n```\n\n### Can I use this with CocoaPods or Carthage?\n\nYes! As long as your project has Xcode schemes, the action will work. Just ensure your schemes are shared.\n\n## Communication\n\n- 🐛 **Found a bug?** [Open an issue](https://github.com/space-code/build-docc/issues/new?template=bug_report.md)\n- 💡 **Have a feature request?** [Open an issue](https://github.com/space-code/build-docc/issues/new?template=feature_request.md)\n- ❓ **Questions?** [Start a discussion](https://github.com/space-code/build-docc/discussions)\n- 🔒 **Security issue?** Email nv3212@gmail.com\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit issues or pull requests.\n\n## Author\n\n**Nikita Vasilev**\n- Email: nv3212@gmail.com\n- GitHub: [@ns-vasilev](https://github.com/ns-vasilev)\n\n## License\n\nbuild-docc is released under the MIT license. See [LICENSE](LICENSE) for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[⬆ back to top](#build-docc)**\n\nMade with ❤️ by [space-code](https://github.com/space-code)\n\n\u003c/div\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspace-code%2Fbuild-docc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspace-code%2Fbuild-docc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspace-code%2Fbuild-docc/lists"}