@@ -25,11 +25,13 @@ jobs:
2525 gate :
2626 name : Gate on merged PR label
2727 runs-on : ubuntu-latest
28+
2829 # Prevent infinite loops from the bot's release commits.
2930 if : github.actor != 'applied-ai-releases[bot]'
3031 outputs :
3132 should_release : ${{ steps.find_pr.outputs.should_release }}
3233 pr_number : ${{ steps.find_pr.outputs.pr_number }}
34+
3335 steps :
3436 - name : Find merged PR for this commit and check labels
3537 id : find_pr
8486 return;
8587 }
8688 const labels = (pr.labels || []).map(l => l.name);
89+
8790 core.setOutput("pr_number", String(pr.number));
8891 const should = labels.includes("auto:release");
8992 core.setOutput("should_release", should ? "true" : "false");
93+
9094 core.notice(`PR #${pr.number} labels: ${labels.join(", ")}`);
9195 core.notice(`should_release=${should}`);
9296
@@ -95,16 +99,19 @@ jobs:
9599 runs-on : ubuntu-latest
96100 needs : gate
97101 if : needs.gate.outputs.should_release == 'true'
102+
98103 steps :
99104 - name : Check out repository
100105 uses : actions/checkout@v4
101106 with :
102107 ref : main
103108 fetch-depth : 0
109+
104110 - name : Install Python
105111 uses : actions/setup-python@v5
106112 with :
107113 python-version : ${{ env.PYTHON_VERSION }}
114+
108115 - name : Install uv
109116 uses : astral-sh/setup-uv@v6
110117 with :
@@ -114,8 +121,10 @@ jobs:
114121 cache-dependency-glob : |
115122 pyproject.toml
116123 uv.lock
124+
117125 - name : Install dependencies
118126 run : uv sync --frozen
127+
119128 - name : Check that package can be built
120129 run : uv build
121130
@@ -128,13 +137,16 @@ jobs:
128137 fail-fast : false
129138 matrix :
130139 nat-core : ["~=1.6.0", "~=1.7.0"]
140+
131141 steps :
132142 - name : Check out repository
133143 uses : actions/checkout@v4
144+
134145 - name : Install Python
135146 uses : actions/setup-python@v5
136147 with :
137148 python-version : ${{ env.PYTHON_VERSION }}
149+
138150 - name : Install uv
139151 uses : astral-sh/setup-uv@v6
140152 with :
@@ -144,14 +156,19 @@ jobs:
144156 cache-dependency-glob : |
145157 pyproject.toml
146158 uv.lock
159+
147160 - name : Install dependencies
148161 run : uv sync --group dev --extra test
162+
149163 - name : Pin nvidia-nat-core version
150164 run : uv pip install "nvidia-nat-core${{ matrix.nat-core }}"
165+
151166 - name : Validate tool-based-memory config
152167 run : uv run nat validate --config_file examples/tool_based_memory/configs/config.yml
168+
153169 - name : Validate agent-auto-memory config
154170 run : uv run nat validate --config_file examples/agent_auto_memory/configs/config.yml
171+
155172 - name : Run tests
156173 run : uv run python -m pytest
157174
@@ -160,11 +177,9 @@ jobs:
160177 runs-on : ubuntu-latest
161178 needs : [gate, canary-build, compat]
162179 if : needs.gate.outputs.should_release == 'true'
163- # Requires secrets.RELEASE_BOT_PRIVATE_KEY: private key for the
164- # applied-ai-releases GitHub App (app ID 2959093). The app must be
165- # installed on the redis-developer org.
166180 outputs :
167181 version : ${{ steps.latest_release.outputs.version }}
182+
168183 steps :
169184 - name : Generate GitHub App token
170185 id : app_token
@@ -190,7 +205,7 @@ jobs:
190205 sudo mv auto-linux /usr/local/bin/auto
191206 auto --version
192207
193- - name : Sanity check (dry run)
208+ - name : Sanity check
194209 env :
195210 GH_TOKEN : ${{ steps.app_token.outputs.token }}
196211 run : |
@@ -259,6 +274,7 @@ jobs:
259274 permissions :
260275 id-token : write # OIDC for trusted PyPI publishing
261276 attestations : write # SLSA build provenance
277+
262278 steps :
263279 - name : Check out repository
264280 uses : actions/checkout@v4
0 commit comments