Skip to content

Commit f7aee9f

Browse files
committed
Update workflows
1 parent 71c7519 commit f7aee9f

8 files changed

+243
-42
lines changed

.github/workflows/build_frontend.yml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Build Frontend
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
build-frontend:
8+
name: Build Frontend
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: actions/setup-node@v4
13+
with:
14+
node-version: 21
15+
- name: Install dependencies
16+
run: |
17+
cd front
18+
npm install
19+
- name: Build app
20+
run: |
21+
cd front
22+
npm run build
23+
- name: Upload build
24+
uses: actions/upload-artifact@v4
25+
with:
26+
name: frontend
27+
path: front/out
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Build Frontend
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
build-user-guide:
8+
name: Build User Guide
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: actions/setup-python@v5
13+
with:
14+
python-version: "3.10"
15+
- name: Install dependencies
16+
run: |
17+
cd back
18+
pip install -r guide_requirements.txt
19+
- name: Build Guide
20+
run: |
21+
cd back
22+
mkdocs build -d mkdocs-guide.yml -d site
23+
- name: Upload build
24+
uses: actions/upload-artifact@v4
25+
with:
26+
name: user_guide
27+
path: back/site

.github/workflows/bundle.yml

+33-15
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,28 @@ on:
44
types: [published]
55

66
jobs:
7+
build-user-guide:
8+
uses: mbsantiago/whombat/.github/workflows/build_user_guide.yml@dev
9+
10+
build-frontend:
11+
uses: mbsantiago/whombat/.github/workflows/build_frontend.yml@dev
12+
713
build-windows:
814
runs-on: windows-latest
15+
needs: [build-user-guide, build-frontend]
916
steps:
1017
- uses: actions/checkout@v3
1118
- uses: actions/setup-python@v4
1219
with:
1320
python-version: "3.11"
14-
- uses: actions/setup-node@v4
21+
- uses: actions/download-artifact@v4
1522
with:
16-
node-version: 21
17-
- shell: pwsh
18-
run: scripts/update_front.ps1
19-
- shell: pwsh
20-
run: scripts/update_guide.ps1
23+
name: frontend
24+
path: back/src/whombat/statics/
25+
- uses: actions/download-artifact@v4
26+
with:
27+
name: user_guide
28+
path: back/src/whombat/user_guide/
2129
- shell: pwsh
2230
run: scripts/bundle_windows.ps1
2331
- run: |
@@ -30,17 +38,20 @@ jobs:
3038

3139
build-ubuntu:
3240
runs-on: ubuntu-20.04
41+
needs: [build-user-guide, build-frontend]
3342
steps:
3443
- uses: actions/checkout@v3
3544
- uses: actions/setup-python@v4
3645
with:
3746
python-version: "3.11"
38-
- uses: actions/setup-node@v4
47+
- uses: actions/download-artifact@v4
3948
with:
40-
node-version: 21
41-
- run: npm cache clean --force
42-
- run: make build-frontend
43-
- run: make build-guide
49+
name: frontend
50+
path: back/src/whombat/statics/
51+
- uses: actions/download-artifact@v4
52+
with:
53+
name: user_guide
54+
path: back/src/whombat/user_guide/
4455
- run: bash scripts/bundle_linux.sh
4556
- run: |
4657
mkdir dist/
@@ -52,16 +63,23 @@ jobs:
5263

5364
build-macos:
5465
runs-on: macos-11
66+
needs: [build-user-guide, build-frontend]
5567
steps:
5668
- uses: actions/checkout@v3
5769
- uses: actions/setup-python@v4
5870
with:
5971
python-version: "3.11"
60-
- uses: actions/setup-node@v4
72+
- uses: actions/setup-python@v4
73+
with:
74+
python-version: "3.11"
75+
- uses: actions/download-artifact@v4
76+
with:
77+
name: frontend
78+
path: back/src/whombat/statics/
79+
- uses: actions/download-artifact@v4
6180
with:
62-
node-version: 21
63-
- run: make build-frontend
64-
- run: make build-guide
81+
name: user_guide
82+
path: back/src/whombat/user_guide/
6583
- run: bash scripts/bundle_macos.sh
6684
- run: |
6785
mkdir dist/

.github/workflows/bundle_test.yml

+37-23
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,34 @@
11
name: Test Bundle App
22

3-
on:
3+
on:
44
workflow_dispatch:
55
push:
66
branches:
77
- workflows
88

9-
109
jobs:
10+
build-user-guide:
11+
uses: mbsantiago/whombat/.github/workflows/build_user_guide.yml@dev
12+
13+
build-frontend:
14+
uses: mbsantiago/whombat/.github/workflows/build_frontend.yml@dev
15+
1116
build-windows-test:
1217
runs-on: windows-latest
18+
needs: [build-user-guide, build-frontend]
1319
steps:
14-
- uses: actions/checkout@v3
15-
- uses: actions/setup-python@v4
20+
- uses: actions/checkout@v4
21+
- uses: actions/setup-python@v5
1622
with:
1723
python-version: "3.11"
18-
- uses: actions/setup-node@v4
24+
- uses: actions/download-artifact@v4
1925
with:
20-
node-version: 21
21-
- shell: pwsh
22-
run: scripts/update_front.ps1
23-
- shell: pwsh
24-
run: scripts/update_guide.ps1
26+
name: frontend
27+
path: back/src/whombat/statics/
28+
- uses: actions/download-artifact@v4
29+
with:
30+
name: user_guide
31+
path: back/src/whombat/user_guide/
2532
- shell: pwsh
2633
run: scripts/bundle_windows.ps1
2734
- run: |
@@ -34,17 +41,20 @@ jobs:
3441

3542
build-ubuntu-test:
3643
runs-on: ubuntu-20.04
44+
needs: [build-user-guide, build-frontend]
3745
steps:
38-
- uses: actions/checkout@v3
39-
- uses: actions/setup-python@v4
46+
- uses: actions/checkout@v4
47+
- uses: actions/setup-python@v5
4048
with:
4149
python-version: "3.11"
42-
- uses: actions/setup-node@v4
50+
- uses: actions/download-artifact@v4
4351
with:
44-
node-version: 21
45-
- run: npm cache clean --force
46-
- run: make build-frontend
47-
- run: make build-guide
52+
name: frontend
53+
path: back/src/whombat/statics/
54+
- uses: actions/download-artifact@v4
55+
with:
56+
name: user_guide
57+
path: back/src/whombat/user_guide/
4858
- run: bash scripts/bundle_linux.sh
4959
- run: |
5060
mkdir dist/
@@ -56,16 +66,20 @@ jobs:
5666

5767
build-macos-test:
5868
runs-on: macos-11
69+
needs: [build-user-guide, build-frontend]
5970
steps:
60-
- uses: actions/checkout@v3
61-
- uses: actions/setup-python@v4
71+
- uses: actions/checkout@v4
72+
- uses: actions/setup-python@v5
6273
with:
6374
python-version: "3.11"
64-
- uses: actions/setup-node@v4
75+
- uses: actions/download-artifact@v4
76+
with:
77+
name: frontend
78+
path: back/src/whombat/statics/
79+
- uses: actions/download-artifact@v4
6580
with:
66-
node-version: 21
67-
- run: make build-frontend
68-
- run: make build-guide
81+
name: user_guide
82+
path: back/src/whombat/user_guide/
6983
- run: bash scripts/bundle_macos.sh
7084
- run: |
7185
mkdir dist/

.github/workflows/docs.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
matrix:
1414
python-version: ["3.11"]
1515
steps:
16-
- uses: actions/checkout@v3
16+
- uses: actions/checkout@v4
1717
- name: Setup PDM
1818
uses: pdm-project/setup-pdm@v3
1919
with:

.github/workflows/lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
matrix:
1313
python-version: ["3.11"]
1414
steps:
15-
- uses: actions/checkout@v3
15+
- uses: actions/checkout@v4
1616
- name: Setup PDM
1717
uses: pdm-project/setup-pdm@v3
1818
with:

.github/workflows/publish.yml

+108
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: Publish PyPI
2+
on:
3+
workflow_dispatch:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
build-user-guide:
9+
uses: mbsantiago/whombat/.github/workflows/build_user_guide.yml@dev
10+
11+
build-frontend:
12+
uses: mbsantiago/whombat/.github/workflows/build_frontend.yml@dev
13+
14+
build:
15+
runs-on: ubuntu-latest
16+
needs: [build-user-guide, build-frontend]
17+
steps:
18+
- uses: actions/checkout@v3
19+
- uses: actions/setup-python@v4
20+
with:
21+
python-version: "3.11"
22+
- uses: actions/download-artifact@v4
23+
with:
24+
name: frontend
25+
path: back/src/whombat/statics/
26+
- uses: actions/download-artifact@v4
27+
with:
28+
name: user_guide
29+
path: back/src/whombat/user_guide/
30+
- name: Install pypa/build
31+
run: pip install build
32+
- name: Build a binary wheel and source tarball
33+
run: |
34+
cd back
35+
python -m build
36+
- name: Store the distribution packages
37+
uses: actions/upload-artifact@v3
38+
with:
39+
name: python-package-distributions
40+
path: back/dist/
41+
42+
publish-to-pypi:
43+
name: Publish to PyPI
44+
needs: [build]
45+
runs-on: ubuntu-latest
46+
47+
if: github.event_name == 'release'
48+
49+
environment:
50+
name: pypi
51+
url: https://pypi.org/p/whombat
52+
53+
permissions:
54+
id-token: write
55+
steps:
56+
- name: Download all the dists
57+
uses: actions/download-artifact@v3
58+
with:
59+
name: python-package-distributions
60+
path: dist/
61+
- name: Publish distribution 📦 to PyPI
62+
uses: pypa/gh-action-pypi-publish@release/v1
63+
64+
github-release:
65+
name: Upload to GitHub release
66+
needs: [publish-to-pypi]
67+
runs-on: ubuntu-latest
68+
69+
if: github.event_name == 'release'
70+
71+
permissions:
72+
contents: write
73+
id-token: write
74+
75+
steps:
76+
- name: Download the dists
77+
uses: actions/download-artifact@v3
78+
with:
79+
name: python-package-distributions
80+
path: dist/
81+
- name: Upload artifact to GitHub Release
82+
env:
83+
GITHUB_TOKEN: ${{ github.token }}
84+
run: |
85+
gh release upload '${{ github.ref_name }}' dist/** --repo '${{github.repository }}'
86+
87+
publish-to-testpypi:
88+
name: Publish to TestPyPI
89+
needs: [build]
90+
runs-on: ubuntu-latest
91+
92+
if: github.event_name == 'workflow_dispatch'
93+
94+
environment:
95+
name: testpypi
96+
url: https://test.pypi.org/p/whombat
97+
98+
permissions:
99+
id-token: write
100+
101+
steps:
102+
- name: Download all the dists
103+
uses: actions/download-artifact@v3
104+
with:
105+
name: python-package-distributions
106+
path: dist/
107+
- name: Publish distribution 📦 to PyPI
108+
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/test.yml

+9-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
matrix:
1313
python-version: ["3.11"]
1414
steps:
15-
- uses: actions/checkout@v3
15+
- uses: actions/checkout@v4
1616
- name: Setup PDM
1717
uses: pdm-project/setup-pdm@v3
1818
with:
@@ -24,4 +24,11 @@ jobs:
2424
- name: Run tests
2525
run: |
2626
cd back
27-
pdm run pytest tests/
27+
pdm run coverage run --source whombat -m pytest
28+
pdm run coverage report -m
29+
pdm run coverage html
30+
- name: Upload coverage reports to Codecov
31+
uses: codecov/codecov-action@v3
32+
env:
33+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
34+

0 commit comments

Comments
 (0)