{"id":21969578,"url":"https://github.com/cinderblock/github-action-standalone-stats","last_synced_at":"2026-05-15T08:34:07.906Z","repository":{"id":42303107,"uuid":"231844087","full_name":"cinderblock/github-action-standalone-stats","owner":"cinderblock","description":"GitHub Action that publishes coverage, tests results, and other stats to gh-pages for self-contained pretty charts and badges","archived":false,"fork":false,"pushed_at":"2023-01-05T04:52:36.000Z","size":2685,"stargazers_count":1,"open_issues_count":15,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-03-14T16:44:16.625Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/cinderblock.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}},"created_at":"2020-01-04T23:44:14.000Z","updated_at":"2024-08-22T06:55:08.343Z","dependencies_parsed_at":"2023-02-03T10:30:31.572Z","dependency_job_id":null,"html_url":"https://github.com/cinderblock/github-action-standalone-stats","commit_stats":{"total_commits":48,"total_committers":2,"mean_commits":24.0,"dds":0.04166666666666663,"last_synced_commit":"9ec6bf50b5ab29b4d1eab55f648a0808716f171a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":"actions/typescript-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fgithub-action-standalone-stats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fgithub-action-standalone-stats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fgithub-action-standalone-stats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fgithub-action-standalone-stats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cinderblock","download_url":"https://codeload.github.com/cinderblock/github-action-standalone-stats/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245027780,"owners_count":20549385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-11-29T14:22:26.965Z","updated_at":"2025-10-17T04:17:22.923Z","avatar_url":"https://github.com/cinderblock.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Normally, we're restricted to simple badges like this:\n\n[![cinderblock/github-action-standalone-stats status](https://github.com/cinderblock/github-action-standalone-stats/workflows/Main/badge.svg?branch=master)](https://github.com/cinderblock/github-action-standalone-stats/actions?query=branch%3Amaster)\n_(GitHub Action Badge)_\n\nBut with Standalone Stats...\n\n[![Click for Full Build Report Metrics](https://cinderblock.github.io/github-action-standalone-stats/dashboard.svg)](https://cinderblock.github.io/github-action-standalone-stats)\n\n## Standalone Stats\n\n![Github Action Standalone Stats](banner.svg)\n\nStandalone Stats is a tool that helps you generate pretty build reports for your GitHub Actions.\n\nIt supports a bunch of reporters, like:\n\n- Test Reports:\n  - [jest-stare](https://cinderblock.github.io/github-action-standalone-stats/jest-stare)\n  - [jest-html-reporters](https://cinderblock.github.io/github-action-standalone-stats/jest-html-reporter.html)\n  - [allure](https://cinderblock.github.io/github-action-standalone-stats/allure-report)\n- Coverage Report:\n  - [lcov](https://cinderblock.github.io/github-action-standalone-stats/coverage/lcov-report)\n\n## How It Works\n\nInspired by tools like [coveralls.io](https://coveralls.io), this tool takes raw coverage report files (`lcov` format) and generates pretty graphs to show coverage over time.\nHowever, instead of relying on a 3rd party service to generated and host these static reports, we generate them ourselves and use github-pages to host the various generated static html files.\n\nIt is critical, for generating reports, to have the raw historical data for each execution.\nWe use an extra branch on the repo (or, optionally, a separate repo) to store this historical data and use it to generate new reports on push.\n\nWe also use another extra branch to store the generated reports, which GitHub Pages will host.\n\nGit has the code.  \nGit has the database.  \nGit has the publication.\n\n## Usage\n\n# ⚠️⚠️ WORK IN PROGRESS ⚠️⚠️\n\n## Not yet ready for use\n\nIn your GitHub Actions, add a config like this:\n\n```yml\njobs:\n  self-test-and-generate-stats:\n    runs-on: ubuntu-latest # Anything should work\n    steps:\n      - name: Checkout your code\n        uses: actions/checkout@v1\n\n      - name: Setup your code\n        run: npm install\n\n      - name: Run your tests that generate reports\n        id: tests\n        run: npm test\n\n      - name: Generate Standalone Stats\n        # Run even if tests failed\n        if: success() || steps.tests.result == 'failure'\n        id: generateStats\n        uses: cinderblock/github-action-standalone-stats@v1\n        # This step will copy coverage reports (and others) to the specified historical branch\n        # and use them all to generate some updated pretty charts\n        with:\n          stats-branch: build-stats\n          stats-repo: '' # Current\n          # Output directory for the generated reports\n          pages-dir: public/action-stats\n\n      # Publish to gh-pages\n      - name: Publish to gh-pages\n        # Run even if other steps failed, as long as generateStats succeeded\n        if: success() || steps.generateStats.result == 'success'\n        uses: peaceiris/actions-gh-pages@v4\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          publish_dir: public\n```\n\nAdd this to your README\n\n```md\n[![Development Stats](https://\u003cuser\u003e.github.io/\u003crepo\u003e/action-stats/\u003cref\u003e/dashboard.svg)](https://\u003cuser\u003e.github.io/\u003crepo\u003e/action-stats)\n```\n\n## Development\n\nInstall the dependencies\n\n```bash\nnpm install\n```\n\nBuild the typescript (automatic with `npm install`)\n\n```bash\nnpm run build\n```\n\nRun the tests :heavy_check_mark:\n\n```bash\nnpm test\n\n PASS  ./main.js\n  ✓ throws invalid number (3ms)\n  ✓ wait 500 ms (504ms)\n  ✓ test runs (95ms)\n\n...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2Fgithub-action-standalone-stats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcinderblock%2Fgithub-action-standalone-stats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2Fgithub-action-standalone-stats/lists"}