mirror of
https://github.com/lukaszraczylo/git-velocity.git
synced 2026-06-05 22:43:56 +00:00
Set up github action.
This commit is contained in:
@@ -10,7 +10,7 @@ jobs:
|
||||
analyze:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
contents: write
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
@@ -19,11 +19,22 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run Git Velocity Analysis
|
||||
uses: lukaszraczylo/git-velocity/.github/actions/git-velocity@main
|
||||
uses: lukaszraczylo/git-velocity@v1
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
config_file: '.git-velocity.yaml'
|
||||
output_dir: './dist'
|
||||
deploy_gh_pages: 'true'
|
||||
upload_artifact: 'true'
|
||||
artifact_name: 'velocity-dashboard'
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: velocity-dashboard
|
||||
path: ./dist
|
||||
retention-days: 30
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v4
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./dist
|
||||
force_orphan: true
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
name: Release
|
||||
name: Test, build, release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- '**/release.yml'
|
||||
- 'action.yml'
|
||||
branches:
|
||||
- main
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -11,42 +16,9 @@ permissions:
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.23'
|
||||
cache: true
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
|
||||
- name: Build Vue SPA
|
||||
working-directory: web
|
||||
run: |
|
||||
npm ci
|
||||
npm run build
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v5
|
||||
with:
|
||||
distribution: goreleaser
|
||||
version: latest
|
||||
args: release --clean
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
HOMEBREW_TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
|
||||
uses: lukaszraczylo/shared-actions/.github/workflows/go-release.yaml@main
|
||||
with:
|
||||
go-version: "1.24"
|
||||
docker-enabled: true
|
||||
rolling-release-tag: "v1"
|
||||
secrets: inherit
|
||||
|
||||
+8
-11
@@ -69,24 +69,21 @@ dockers_v2:
|
||||
platforms:
|
||||
- linux/amd64
|
||||
- linux/arm64
|
||||
dockerfile: Dockerfile
|
||||
dockerfile: Dockerfile.goreleaser
|
||||
extra_files:
|
||||
- config.example.yaml
|
||||
|
||||
homebrew_casks:
|
||||
brews:
|
||||
- name: git-velocity
|
||||
repository:
|
||||
owner: lukaszraczylo
|
||||
name: homebrew-taps
|
||||
name: homebrew-tap
|
||||
token: "{{ .Env.HOMEBREW_TAP_TOKEN }}"
|
||||
directory: Casks
|
||||
directory: Formula
|
||||
homepage: https://github.com/lukaszraczylo/git-velocity
|
||||
description: "Developer velocity metrics analyzer with gamification dashboards"
|
||||
license: MIT
|
||||
hooks:
|
||||
post:
|
||||
install: |
|
||||
if OS.mac?
|
||||
system_command "/usr/bin/xattr",
|
||||
args: ["-dr", "com.apple.quarantine", "#{staged_path}/git-velocity"]
|
||||
end
|
||||
install: |
|
||||
bin.install "git-velocity"
|
||||
test: |
|
||||
system "#{bin}/git-velocity", "version"
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
FROM alpine:3.21
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
RUN apk add --no-cache ca-certificates tzdata git
|
||||
|
||||
COPY ${TARGETPLATFORM}/git-velocity /usr/local/bin/git-velocity
|
||||
COPY config.example.yaml /etc/git-velocity/config.example.yaml
|
||||
|
||||
RUN chmod +x /usr/local/bin/git-velocity
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/git-velocity"]
|
||||
CMD ["--help"]
|
||||
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<img src="https://img.icons8.com/fluency/96/rocket.png" alt="Git Velocity Logo" width="96" height="96"/>
|
||||
<img src="docs/git-velocity-logo.png" alt="Git Velocity Logo" width="200"/>
|
||||
</p>
|
||||
|
||||
<h1 align="center">Git Velocity</h1>
|
||||
@@ -160,14 +160,23 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Run Git Velocity Analysis
|
||||
uses: lukaszraczylo/git-velocity/.github/actions/git-velocity@main
|
||||
uses: lukaszraczylo/git-velocity@v1
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
config_file: '.git-velocity.yaml'
|
||||
output_dir: './velocity-report'
|
||||
deploy_gh_pages: 'true'
|
||||
upload_artifact: 'true'
|
||||
artifact_name: 'velocity-dashboard'
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: velocity-dashboard
|
||||
path: ./velocity-report
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v4
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./velocity-report
|
||||
```
|
||||
|
||||
### Action Inputs
|
||||
@@ -177,9 +186,7 @@ jobs:
|
||||
| `github_token` | GitHub token for API access | **Required** |
|
||||
| `config_file` | Path to configuration file | `.git-velocity.yaml` |
|
||||
| `output_dir` | Output directory for dashboard | `./dist` |
|
||||
| `deploy_gh_pages` | Deploy to GitHub Pages | `false` |
|
||||
| `upload_artifact` | Upload as workflow artifact | `true` |
|
||||
| `artifact_name` | Name for the artifact | `git-velocity-dashboard` |
|
||||
| `verbose` | Enable verbose output | `false` |
|
||||
|
||||
### Action Outputs
|
||||
|
||||
@@ -187,6 +194,8 @@ jobs:
|
||||
|--------|-------------|
|
||||
| `output_dir` | Path to the generated dashboard |
|
||||
|
||||
> **Note**: The action runs as a Docker container for fast execution. Use separate steps for artifact upload and GitHub Pages deployment as shown in the example above.
|
||||
|
||||
## 🏆 Achievements
|
||||
|
||||
Git Velocity includes 34 unlockable achievements:
|
||||
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
# action.yml
|
||||
name: 'Git Velocity Analyser'
|
||||
description: 'Analyze Git repositories for developer velocity metrics and generate beautiful dashboards'
|
||||
author: 'Lukasz Raczylo'
|
||||
branding:
|
||||
icon: 'activity'
|
||||
color: 'purple'
|
||||
inputs:
|
||||
github_token:
|
||||
description: 'GitHub token for API access'
|
||||
required: true
|
||||
config_file:
|
||||
description: 'Path to configuration file'
|
||||
required: false
|
||||
default: '.git-velocity.yaml'
|
||||
output_dir:
|
||||
description: 'Output directory for generated dashboard'
|
||||
required: false
|
||||
default: './dist'
|
||||
verbose:
|
||||
description: 'Enable verbose output'
|
||||
required: false
|
||||
default: 'false'
|
||||
outputs:
|
||||
output_dir:
|
||||
description: 'Path to the generated dashboard'
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'docker://ghcr.io/lukaszraczylo/git-velocity:latest'
|
||||
args:
|
||||
- analyze
|
||||
- --config
|
||||
- ${{ inputs.config_file }}
|
||||
- --output
|
||||
- ${{ inputs.output_dir }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
+16
-17
@@ -109,9 +109,8 @@
|
||||
<nav class="fixed w-full glass shadow-modern z-50 theme-transition">
|
||||
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="flex justify-between h-16 items-center">
|
||||
<a href="#" class="flex items-center hover:opacity-80 transition-opacity duration-300 gap-2">
|
||||
<i class="fas fa-rocket text-2xl gradient-text"></i>
|
||||
<span class="text-xl font-bold gradient-text">git-velocity</span>
|
||||
<a href="#" class="flex items-center hover:opacity-80 transition-opacity duration-300">
|
||||
<img src="git-velocity-logo.png" alt="Git Velocity" class="h-8 w-auto" />
|
||||
</a>
|
||||
<div class="hidden md:flex space-x-6">
|
||||
<a href="#features" class="text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 font-medium">Features</a>
|
||||
@@ -156,9 +155,7 @@
|
||||
<div class="relative max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="text-center">
|
||||
<div class="mb-8 sm:mb-10 flex justify-center animate-fade-in-up">
|
||||
<div class="text-8xl sm:text-9xl animate-float">
|
||||
<i class="fas fa-rocket gradient-text"></i>
|
||||
</div>
|
||||
<img src="git-velocity-logo.png" alt="Git Velocity Logo" class="w-64 sm:w-80 md:w-96 h-auto animate-float" />
|
||||
</div>
|
||||
<h1 class="text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold text-gray-900 dark:text-gray-100 mb-4 sm:mb-6 leading-tight animate-fade-in-up" style="animation-delay: 0.1s;">
|
||||
Turn Your GitHub Activity<br /><span class="gradient-text">Into a Game</span>
|
||||
@@ -571,13 +568,17 @@
|
||||
- <span class="text-blue-400">uses:</span> actions/checkout@v4
|
||||
|
||||
- <span class="text-blue-400">name:</span> Run Git Velocity Analysis
|
||||
<span class="text-blue-400">uses:</span> lukaszraczylo/git-velocity/.github/actions/git-velocity@main
|
||||
<span class="text-blue-400">uses:</span> lukaszraczylo/git-velocity@v1
|
||||
<span class="text-blue-400">with:</span>
|
||||
<span class="text-green-400">github_token:</span> ${{ secrets.GITHUB_TOKEN }}
|
||||
<span class="text-green-400">config_file:</span> '.git-velocity.yaml'
|
||||
<span class="text-green-400">output_dir:</span> './velocity-report'
|
||||
<span class="text-green-400">deploy_gh_pages:</span> 'true'
|
||||
<span class="text-green-400">upload_artifact:</span> 'true'</code></pre>
|
||||
|
||||
- <span class="text-blue-400">name:</span> Deploy to GitHub Pages
|
||||
<span class="text-blue-400">uses:</span> peaceiris/actions-gh-pages@v4
|
||||
<span class="text-blue-400">with:</span>
|
||||
<span class="text-green-400">github_token:</span> ${{ secrets.GITHUB_TOKEN }}
|
||||
<span class="text-green-400">publish_dir:</span> ./velocity-report</code></pre>
|
||||
</div>
|
||||
<div class="grid sm:grid-cols-2 gap-4">
|
||||
<div class="glass p-4 rounded-xl">
|
||||
@@ -588,8 +589,7 @@
|
||||
<li><code class="text-pink-600 dark:text-pink-400">github_token</code> - API access (required)</li>
|
||||
<li><code class="text-pink-600 dark:text-pink-400">config_file</code> - Config path</li>
|
||||
<li><code class="text-pink-600 dark:text-pink-400">output_dir</code> - Output directory</li>
|
||||
<li><code class="text-pink-600 dark:text-pink-400">deploy_gh_pages</code> - Auto-deploy</li>
|
||||
<li><code class="text-pink-600 dark:text-pink-400">upload_artifact</code> - Save artifact</li>
|
||||
<li><code class="text-pink-600 dark:text-pink-400">verbose</code> - Verbose output</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="glass p-4 rounded-xl">
|
||||
@@ -602,9 +602,9 @@
|
||||
<div class="mt-4 pt-4 border-t border-gray-200 dark:border-gray-600">
|
||||
<h5 class="font-medium text-gray-900 dark:text-gray-100 mb-2">Features</h5>
|
||||
<ul class="text-sm text-gray-600 dark:text-gray-400 space-y-1">
|
||||
<li><i class="fas fa-check text-green-500 mr-2"></i>Auto GitHub Pages deploy</li>
|
||||
<li><i class="fas fa-check text-green-500 mr-2"></i>Artifact retention (30 days)</li>
|
||||
<li><i class="fas fa-check text-green-500 mr-2"></i>Go 1.23 + Node 20</li>
|
||||
<li><i class="fas fa-check text-green-500 mr-2"></i>Docker-based (fast startup)</li>
|
||||
<li><i class="fas fa-check text-green-500 mr-2"></i>Multi-arch (amd64/arm64)</li>
|
||||
<li><i class="fas fa-check text-green-500 mr-2"></i>Pre-built image from GHCR</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -755,9 +755,8 @@
|
||||
<footer class="py-8 bg-gray-100 dark:bg-gray-800 theme-transition">
|
||||
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="flex flex-col sm:flex-row justify-between items-center gap-4">
|
||||
<div class="flex items-center gap-2">
|
||||
<i class="fas fa-rocket text-xl gradient-text"></i>
|
||||
<span class="font-semibold gradient-text">git-velocity</span>
|
||||
<div class="flex items-center">
|
||||
<img src="git-velocity-logo.png" alt="Git Velocity" class="h-6 w-auto" />
|
||||
</div>
|
||||
<div class="flex items-center gap-6">
|
||||
<a href="https://github.com/lukaszraczylo/git-velocity" class="text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100">
|
||||
|
||||
Reference in New Issue
Block a user