Skip to content

Commit 59d689a

Browse files
authored
Merge pull request #28 from mbsantiago/feat/migrate-to-uv
Upgrade: Python 3.12 and Migrate Package Management to 'uv'
2 parents 72d0fad + a326a20 commit 59d689a

34 files changed

+2561
-981
lines changed

.github/workflows/build_frontend.yml

+13-5
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,28 @@ on:
66
jobs:
77
build-frontend:
88
name: Build Frontend
9+
910
runs-on: ubuntu-latest
11+
1012
steps:
11-
- uses: actions/checkout@v4
12-
- uses: actions/setup-node@v4
13+
- name: Checkout source code
14+
uses: actions/checkout@v4
15+
16+
- name: Setup node
17+
uses: actions/setup-node@v4
1318
with:
14-
node-version: 21
15-
- name: Install dependencies
19+
node-version: 22
20+
21+
- name: Install frontend dependencies
1622
run: |
1723
cd front
1824
npm install
19-
- name: Build app
25+
26+
- name: Build frontend app
2027
run: |
2128
cd front
2229
npm run build
30+
2331
- name: Upload build
2432
uses: actions/upload-artifact@v4
2533
with:

.github/workflows/build_user_guide.yml

+28-5
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,45 @@ on:
66
jobs:
77
build-user-guide:
88
name: Build User Guide
9+
910
runs-on: ubuntu-latest
11+
12+
env:
13+
UV_CACHE_DIR: /tmp/.uv-cache
14+
1015
steps:
1116
- uses: actions/checkout@v4
12-
- uses: actions/setup-python@v5
17+
18+
- name: Set up uv
19+
run: curl -LsSf https://astral.sh/uv/install.sh | sh
20+
21+
- name: Set up Python ${{ matrix.python-version }}
22+
run: uv python install 3.12
23+
24+
- name: Restore uv cache
25+
uses: actions/cache@v4
1326
with:
14-
python-version: "3.10"
15-
- name: Install dependencies
27+
path: /tmp/.uv-cache
28+
key: uv-${{ runner.os }}-${{ hashFiles('back/uv.lock') }}
29+
restore-keys: |
30+
uv-${{ runner.os }}-${{ hashFiles('back/uv.lock') }}
31+
uv-${{ runner.os }}
32+
33+
- name: Install the project dependencies
1634
run: |
1735
cd back
18-
pip install -r guide_requirements.txt
36+
uv sync --all-extras --dev
37+
1938
- name: Build Guide
2039
run: |
2140
cd back
22-
mkdocs build -d mkdocs-guide.yml -d site
41+
uv run mkdocs build -d mkdocs-guide.yml -d site
42+
2343
- name: Upload build
2444
uses: actions/upload-artifact@v4
2545
with:
2646
name: user_guide
2747
path: back/site
48+
49+
- name: Minimize uv cache
50+
run: uv cache prune --ci

.github/workflows/bundle.yml

+48-61
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: Bundle App
2+
23
on:
34
release:
45
types: [published]
@@ -10,81 +11,67 @@ jobs:
1011
build-frontend:
1112
uses: mbsantiago/whombat/.github/workflows/build_frontend.yml@dev
1213

13-
build-windows:
14-
runs-on: windows-latest
14+
build-app:
15+
name: "Bundle App"
16+
1517
needs: [build-user-guide, build-frontend]
18+
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
python-version:
23+
- "3.12"
24+
os:
25+
- ubuntu-latest
26+
- windows-latest
27+
- macos-11
28+
29+
runs-on: ${{ matrix.os }}
30+
1631
steps:
1732
- uses: actions/checkout@v3
18-
- uses: actions/setup-python@v4
33+
34+
- name: Setup python
35+
uses: actions/setup-python@v4
1936
with:
20-
python-version: "3.11"
21-
- uses: actions/download-artifact@v4
37+
python-version: ${{ matrix.python-version }}
38+
39+
- name: Retrieve built frontend
40+
uses: actions/download-artifact@v4
2241
with:
2342
name: frontend
2443
path: back/src/whombat/statics/
25-
- uses: actions/download-artifact@v4
44+
45+
- name: Retrieve built user guide
46+
uses: actions/download-artifact@v4
2647
with:
2748
name: user_guide
2849
path: back/src/whombat/user_guide/
29-
- shell: pwsh
30-
run: scripts/bundle_windows.ps1
31-
- run: |
50+
51+
- name: Bundle app (Windows)
52+
if: ${{ matrix.os == 'windows-latest' }}
53+
shell: pwsh
54+
run: |
55+
scripts/bundle_windows.ps1
3256
mkdir dist/
33-
mv "back/dist/whombat.zip" "dist/whombat-windows-${{ github.ref_name }}.zip"
34-
- uses: shogo82148/actions-upload-release-asset@v1
35-
with:
36-
upload_url: ${{ github.event.release.upload_url }}
37-
asset_path: "dist/whombat-windows-${{ github.ref_name }}.zip"
57+
mv "back/dist/whombat.zip" "dist/whombat-${{ matrix.os }}-${{ github.ref_name }}.zip"
3858
39-
build-ubuntu:
40-
runs-on: ubuntu-20.04
41-
needs: [build-user-guide, build-frontend]
42-
steps:
43-
- uses: actions/checkout@v3
44-
- uses: actions/setup-python@v4
45-
with:
46-
python-version: "3.11"
47-
- uses: actions/download-artifact@v4
48-
with:
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/
55-
- run: bash scripts/bundle_linux.sh
56-
- run: |
59+
- name: Bundle app (Linux)
60+
if: ${{ matrix.os == 'linux-latest' }}
61+
run: |
62+
bash scripts/bundle_linux.sh
5763
mkdir dist/
58-
mv back/dist/whombat.zip "dist/whombat-ubuntu-${{ github.ref_name }}.zip"
59-
- uses: shogo82148/actions-upload-release-asset@v1
60-
with:
61-
upload_url: ${{ github.event.release.upload_url }}
62-
asset_path: "dist/whombat-ubuntu-${{ github.ref_name }}.zip"
64+
mv back/dist/whombat.zip "dist/whombat-${{ matrix.os }}-${{ github.ref_name }}.zip"
6365
64-
build-macos:
65-
runs-on: macos-11
66-
needs: [build-user-guide, build-frontend]
67-
steps:
68-
- uses: actions/checkout@v3
69-
- uses: actions/setup-python@v4
70-
with:
71-
python-version: "3.11"
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
80-
with:
81-
name: user_guide
82-
path: back/src/whombat/user_guide/
83-
- run: bash scripts/bundle_macos.sh
84-
- run: |
66+
- name: Bundle app (macOS)
67+
if: ${{ matrix.os == 'macos-11' }}
68+
run: |
69+
bash scripts/bundle_macos.sh
8570
mkdir dist/
86-
mv back/dist/whombat.zip "dist/whombat-macos-${{ github.ref_name }}.zip"
87-
- uses: shogo82148/actions-upload-release-asset@v1
71+
mv back/dist/whombat.zip "dist/whombat-${{ matrix.os }}-${{ github.ref_name }}.zip"
72+
73+
- name: Upload release
74+
uses: shogo82148/actions-upload-release-asset@v1
8875
with:
8976
upload_url: ${{ github.event.release.upload_url }}
90-
asset_path: "dist/whombat-macos-${{ github.ref_name }}.zip"
77+
asset_path: "dist/whombat-${{ matrix.os }}-${{ github.ref_name }}.zip"

.github/workflows/bundle_test.yml

-90
This file was deleted.

.github/workflows/docs.yml

+38-10
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,56 @@
11
name: Make docs
2+
23
on:
34
push:
45
branches:
56
- main
7+
68
permissions:
79
contents: write
10+
811
jobs:
912
deploy:
1013
runs-on: ubuntu-latest
14+
15+
env:
16+
UV_CACHE_DIR: /tmp/.uv-cache
17+
1118
steps:
12-
- uses: actions/checkout@v4
13-
- name: Install the latest version of rye
14-
uses: eifinger/setup-rye@v3
19+
- name: Checkout source code
20+
uses: actions/checkout@v4
21+
22+
- name: Set up uv
23+
run: curl -LsSf https://astral.sh/uv/install.sh | sh
24+
25+
- name: Set up Python
26+
run: uv python install 3.12
27+
1528
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
16-
- name: Install dependencies
17-
run: |
18-
cd back
19-
rye sync
20-
- uses: actions/cache@v3
29+
30+
- name: Restore mkdocs cache
31+
uses: actions/cache@v3
2132
with:
2233
key: mkdocs-material-${{ env.cache_id }}
2334
path: .cache
2435
restore-keys: |
2536
mkdocs-material-
26-
- run: |
37+
38+
- name: Restore uv cache
39+
uses: actions/cache@v4
40+
with:
41+
path: /tmp/.uv-cache
42+
key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}
43+
restore-keys: |
44+
uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}
45+
uv-${{ runner.os }}
46+
47+
- name: Install the project dependencies
48+
run: uv sync --all-extras --dev
49+
50+
- name: Build and Deploy Docs
51+
run: |
2752
cd back
28-
rye run mkdocs gh-deploy --force
53+
uv run mkdocs gh-deploy --force
54+
55+
- name: Minimize uv cache
56+
run: uv cache prune --ci

.github/workflows/lint.yml

-21
This file was deleted.

0 commit comments

Comments
 (0)