@@ -19,7 +19,70 @@ concurrency:
1919permissions : {} # workflow-level default — deny all
2020
2121jobs :
22+ # Setup jobs and populate cache
23+
24+ python-env :
25+ runs-on : ubuntu-latest
26+ permissions :
27+ contents : read
28+ steps :
29+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
30+ with :
31+ persist-credentials : false
32+
33+ - name : Cache pip and Poetry virtualenv
34+ uses : actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
35+ with :
36+ path : |
37+ ~/.cache/pip
38+ ~/.cache/pypoetry/virtualenvs
39+ key : ${{ runner.os }}-python-${{ hashFiles('pyproject.toml', 'poetry.lock') }}
40+
41+ - name : Install Poetry
42+ run : pip3 install poetry
43+
44+ - name : Install Python dependencies
45+ run : poetry install --with tokenserver-unit-tests,dev --no-interaction --no-ansi
46+
47+ - name : Display Python Version Info
48+ shell : bash
49+ run : |
50+ if [ "$(which python)" != "" ]; then python --version; fi
51+ uname -a
52+ cat /etc/os-release
53+
54+ rust-env :
55+ runs-on : ubuntu-latest
56+ permissions :
57+ contents : read
58+ steps :
59+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
60+ with :
61+ persist-credentials : false
62+
63+ - name : Cache Rust toolchain
64+ uses : actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
65+ with :
66+ path : |
67+ ~/.rustup/toolchains
68+ ~/.rustup/update-hashes
69+ key : ${{ runner.os }}-rust-toolchain-1.91 # RUST_VER
70+
71+ - name : Install Rust toolchain
72+ run : rustup toolchain install 1.91 --components rustfmt clippy --no-self-update && rustup default 1.91
73+
74+ - name : Install cargo-audit
75+ run : cargo install --locked cargo-audit
76+
77+ - name : Display Rust Version Info
78+ shell : bash
79+ run : |
80+ if [ "$(which rustc)" != "" ]; then rustc --version; fi
81+ uname -a
82+ cat /etc/os-release
83+
2284 python-checks :
85+ needs : python-env
2386 runs-on : ubuntu-latest
2487 permissions :
2588 contents : read
@@ -28,17 +91,25 @@ jobs:
2891 with :
2992 persist-credentials : false
3093
31- - uses : ./.github/actions/setup-python
94+ - name : Restore pip and Poetry virtualenv
95+ uses : actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
3296 with :
33- workspace-path : workflow
97+ path : |
98+ ~/.cache/pip
99+ ~/.cache/pypoetry/virtualenvs
100+ key : ${{ runner.os }}-python-${{ hashFiles('pyproject.toml', 'poetry.lock') }}
101+
102+ - name : Install Poetry
103+ run : pip3 install poetry
34104
35105 - name : Python Format Check
36- run : make ruff-fmt-chk
106+ run : poetry run ruff format --diff tools
37107
38108 - name : Python Lint Check
39- run : make ruff-lint
109+ run : poetry run ruff check tools
40110
41111 rust-checks :
112+ needs : rust-env
42113 runs-on : ubuntu-latest
43114 permissions :
44115 contents : read
@@ -47,9 +118,16 @@ jobs:
47118 with :
48119 persist-credentials : false
49120
50- - uses : ./.github/actions/setup-rust
121+ - name : Restore Rust toolchain
122+ uses : actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
51123 with :
52- workspace-path : workflow
124+ path : |
125+ ~/.rustup/toolchains
126+ ~/.rustup/update-hashes
127+ key : ${{ runner.os }}-rust-toolchain-1.91 # RUST_VER
128+
129+ - name : Set Rust toolchain
130+ run : rustup default 1.91
53131
54132 - name : Rust Format Check
55133 run : cargo fmt -- --check
64142 run : make doc-test
65143
66144 clippy :
145+ needs : rust-env
67146 runs-on : ubuntu-latest
68147 permissions :
69148 contents : read
@@ -75,9 +154,16 @@ jobs:
75154 with :
76155 persist-credentials : false
77156
78- - uses : ./.github/actions/setup-rust
157+ - name : Restore Rust toolchain
158+ uses : actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
79159 with :
80- workspace-path : workflow
160+ path : |
161+ ~/.rustup/toolchains
162+ ~/.rustup/update-hashes
163+ key : ${{ runner.os }}-rust-toolchain-1.91 # RUST_VER
164+
165+ - name : Set Rust toolchain
166+ run : rustup default 1.91
81167
82168 - name : Rust Clippy ${{ matrix.target }}
83169 run : make clippy_${{ matrix.target }}
0 commit comments