-
-
Notifications
You must be signed in to change notification settings - Fork 0
153 lines (130 loc) Β· 4.31 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: Test
on:
pull_request:
paths:
- '**/*.py'
- 'pyproject.toml'
- 'gitstats.conf'
- '.github/workflows/test.yml'
push:
branches:
- "main"
workflow_dispatch:
jobs:
test-windows:
runs-on: windows-latest
strategy:
matrix:
python-version: ["3.9"] # just test on one version to save time
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0 # get all history.
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install gnuplot
run: choco install gnuplot -y --no-progress
- name: Generate GitStats Report
run: |
$env:PATH += ";C:\Program Files\gnuplot\bin"
gnuplot --version
python -m venv venv
.\venv\Scripts\activate.bat
# for testing
pip install .
gitstats . gitstats-report-windows
- name: Save GitStats Report
if: ${{ matrix.python-version == '3.9' }}
uses: actions/upload-artifact@v4
with:
name: gitstats-report-windows
path: gitstats-report-windows
test-macos:
runs-on: macos-latest
strategy:
matrix:
python-version: ["3.9"] # just test on one version to save time
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0 # get all history.
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install gnuplot
run: brew install gnuplot
- name: Generate GitStats Report
run: |
gnuplot --version
python3 -m venv venv
source venv/bin/activate
# for testing
pip install .
gitstats . gitstats-report-macos
- name: Save GitStats Report
if: ${{ matrix.python-version == '3.9' }}
uses: actions/upload-artifact@v4
with:
name: gitstats-report-macos
path: gitstats-report-macos
test-linux:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0 # get all history.
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y gnuplot
- name: Generate GitStats Report
run: |
python3 -m venv venv
source venv/bin/activate
# for testing
pip install .
gitstats . gitstats-report
- name: Save GitStats Report
if: ${{ matrix.python-version == '3.9' }}
uses: actions/upload-artifact@v4
with:
name: gitstats-report
path: gitstats-report
- name: Deploy to GitHub Pages for PR
if: ${{ github.event_name == 'pull_request' && matrix.python-version == '3.9' }}
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: gitstats-report
# Configure a unique preview link for each pull request
destination_dir: previews/${{ github.event.pull_request.number }}
- name: Deploy to GitHub Pages for main branch
if: ${{ (github.ref_name == 'main' || github.event_name == 'workflow_dispatch') && matrix.python-version == '3.9' }}
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: gitstats-report
keep_files: true # do not remove example reports
- name: Add PR Comment with Preview Link
if: ${{ github.event_name == 'pull_request' && matrix.python-version == '3.9' }}
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
REPO_NAME: ${{ github.repository }}
GH_TOKEN: ${{ github.token }}
run: |
PREVIEW_URL="https://shenxianpeng.github.io/gitstats/previews/${{ env.PR_NUMBER }}/index.html"
COMMENT_BODY="π Your GitStats preview is ready: [View Report](${PREVIEW_URL})"
gh api repos/${{ env.REPO_NAME }}/issues/${{ env.PR_NUMBER }}/comments -f body="${COMMENT_BODY}"