Files
deepagentsjs/.github/workflows/cli-release.yml
dependabot[bot] 53194d08ad build(deps): bump the major-deps-updates group with 2 updates (#719)
Bumps the major-deps-updates group with 2 updates:
[actions/setup-python](https://github.com/actions/setup-python) and
[actions/stale](https://github.com/actions/stale).

Updates `actions/setup-python` from 6.3.0 to 7.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-python/releases">actions/setup-python's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Migrate to ESM and upgrade dependencies by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1330">actions/setup-python#1330</a></li>
<li>Pin SHA commits and update docs with latest versions by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1338">actions/setup-python#1338</a></li>
<li>Remove the pip-install input by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1336">actions/setup-python#1336</a></li>
</ul>
<h3>Bug Fix</h3>
<ul>
<li>Fix to Classify stderr warning messages as warnings instead of
errors in annotations by <a
href="https://github.com/lmvysakh"><code>@​lmvysakh</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1335">actions/setup-python#1335</a></li>
<li>Validate and retry manifest fetch to prevent silent failures by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1332">actions/setup-python#1332</a></li>
</ul>
<h3>Dependency Upgrade</h3>
<ul>
<li>Bump certifi from 2020.6.20 to 2024.7.4 in
/<strong>tests</strong>/data by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1328">actions/setup-python#1328</a></li>
<li>Remove EOL Python versions and Bumps numpy text fixture by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1333">actions/setup-python#1333</a></li>
<li>Upgrade <code>@​actions/cache</code> to 6.2.0 by <a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1337">actions/setup-python#1337</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lmvysakh"><code>@​lmvysakh</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1335">actions/setup-python#1335</a></li>
<li><a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1337">actions/setup-python#1337</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6...v7.0.0">https://github.com/actions/setup-python/compare/v6...v7.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-python/commit/5fda3b95a4ea91299a34e894583c3862153e4b97"><code>5fda3b9</code></a>
Pin SHA commits and update docs with latest versions (<a
href="https://redirect.github.com/actions/setup-python/issues/1338">#1338</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/4ab7e95f05e168b4356aebde89dd84f59c283d8e"><code>4ab7e95</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-python/issues/1337">#1337</a>
from actions/philip-gai/bump-actions-cache-6-2-0</li>
<li><a
href="https://github.com/actions/setup-python/commit/0f3a009f475dbea83c0371cd85d099690fee8c5c"><code>0f3a009</code></a>
Remove the pip-install input (<a
href="https://redirect.github.com/actions/setup-python/issues/1336">#1336</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/f8cf4291c8b8e273ddd26e569454615c7315d932"><code>f8cf429</code></a>
Migrate to ESM and upgrade dependencies (<a
href="https://redirect.github.com/actions/setup-python/issues/1330">#1330</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/54baeea5b34417d10a7479663a23cca53ea209b5"><code>54baeea</code></a>
Validate and retry manifest fetch to prevent silent failures (<a
href="https://redirect.github.com/actions/setup-python/issues/1332">#1332</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/c7092773a316760f4ecfe498e4af668a4dafeac5"><code>c709277</code></a>
Annotation code fix (<a
href="https://redirect.github.com/actions/setup-python/issues/1335">#1335</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/6849080452e69b330395e8a6d23cf90f56d76a1a"><code>6849080</code></a>
remove EOL Python versions and Bumps numpy text fixture (<a
href="https://redirect.github.com/actions/setup-python/issues/1333">#1333</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/0903b469fbf4441aadfe4f4b249dc5b1fba3a73e"><code>0903b46</code></a>
Bump certifi from 2020.6.20 to 2024.7.4 in /<strong>tests</strong>/data
(<a
href="https://redirect.github.com/actions/setup-python/issues/1328">#1328</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/setup-python/compare/ece7cb06caefa5fff74198d8649806c4678c61a1...5fda3b95a4ea91299a34e894583c3862153e4b97">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/stale` from 10.4.0 to 11.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/stale/releases">actions/stale's
releases</a>.</em></p>
<blockquote>
<h2>v11.0.0</h2>
<h2>What's Changed</h2>
<h3>Enhancement</h3>
<ul>
<li>Migrate to ESM and update dependencies by <a
href="https://github-grid.enterprise.slack.com/team/U08CVLQ4JKE"><code>@​chiranjib-swain</code></a>
in <a
href="https://redirect.github.com/actions/stale/pull/1350">actions/stale#1350</a></li>
</ul>
<h3>Dependency Update</h3>
<ul>
<li>Override brace-expansion to 5.0.8 to address 24 high-severity
dependency vulnerabilities by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/stale/pull/1351">actions/stale#1351</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/stale/compare/v10...v11.0.0">https://github.com/actions/stale/compare/v10...v11.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/stale/commit/4391f3da665fdf50b6810c1a66712fb9ba21aa93"><code>4391f3d</code></a>
Fix 24 high severity vulnerabilities by overriding brace-expansion to
5.0.8 (...</li>
<li><a
href="https://github.com/actions/stale/commit/eaf9131fae5eafd0c31a64ebe3a2e183266fec48"><code>eaf9131</code></a>
refactor: update imports to use ES module syntax and improve test
structure (...</li>
<li>See full diff in <a
href="https://github.com/actions/stale/compare/1e223db275d687790206a7acac4d1a11bd6fe629...4391f3da665fdf50b6810c1a66712fb9ba21aa93">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-05 01:36:38 -07:00

333 lines
12 KiB
YAML

# CLI Release Workflow
#
# This workflow builds and publishes the deepagents-cli npm package.
# It wraps the Python deepagents-cli from PyPI as platform-specific binaries.
#
# Triggers:
# - Manual dispatch with optional version override
# - Daily schedule to check for new PyPI releases
#
# Jobs:
# 1. check-version: Determine if a new build is needed
# 2. build: Build binaries for each platform (matrix)
# 3. publish: Publish all packages to npm
name: CLI Release
on:
workflow_dispatch:
inputs:
version:
description: "Version to build (leave empty for latest from PyPI)"
required: false
type: string
dry_run:
description: "Dry run (skip publishing)"
required: false
type: boolean
default: false
schedule:
# Check for new PyPI releases daily at 6:00 AM UTC
- cron: "0 6 * * *"
permissions:
contents: read
# Ensure only one release workflow runs at a time
concurrency:
group: cli-release
cancel-in-progress: false
jobs:
# ==========================================================================
# Job 1: Check if a new version needs to be built
# ==========================================================================
check-version:
name: Check Version
runs-on: ubuntu-latest
outputs:
should_build: ${{ steps.check.outputs.should_build }}
version: ${{ steps.check.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Check for new version
id: check
run: |
set -e
# Get latest PyPI version
echo "Fetching latest version from PyPI..."
PYPI_VERSION=$(curl -s https://pypi.org/pypi/deepagents-cli/json | jq -r '.info.version')
echo "PyPI version: $PYPI_VERSION"
# Get current npm version (may not exist yet)
echo "Checking npm version..."
NPM_VERSION=$(npm view deepagents-cli version 2>/dev/null || echo "0.0.0")
echo "npm version: $NPM_VERSION"
# Manual override takes precedence
if [ -n "${{ github.event.inputs.version }}" ]; then
VERSION="${{ github.event.inputs.version }}"
echo "Using manual version override: $VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "should_build=true" >> $GITHUB_OUTPUT
elif [ "$PYPI_VERSION" != "$NPM_VERSION" ]; then
echo "New version available: $PYPI_VERSION (current: $NPM_VERSION)"
echo "version=$PYPI_VERSION" >> $GITHUB_OUTPUT
echo "should_build=true" >> $GITHUB_OUTPUT
else
echo "No new version available"
echo "version=$PYPI_VERSION" >> $GITHUB_OUTPUT
echo "should_build=false" >> $GITHUB_OUTPUT
fi
- name: Summary
run: |
echo "### Version Check Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Property | Value |" >> $GITHUB_STEP_SUMMARY
echo "|----------|-------|" >> $GITHUB_STEP_SUMMARY
echo "| Version | ${{ steps.check.outputs.version }} |" >> $GITHUB_STEP_SUMMARY
echo "| Should Build | ${{ steps.check.outputs.should_build }} |" >> $GITHUB_STEP_SUMMARY
# ==========================================================================
# Job 2: Build binaries for each platform
# ==========================================================================
build:
name: Build (${{ matrix.platform }})
needs: check-version
if: needs.check-version.outputs.should_build == 'true'
strategy:
fail-fast: false
matrix:
include:
- platform: linux-x64
os: ubuntu-latest
python-version: "3.11"
- platform: linux-arm64
os: ubuntu-24.04-arm
python-version: "3.11"
- platform: darwin-x64
os: macos-13
python-version: "3.11"
- platform: darwin-arm64
os: macos-14
python-version: "3.11"
- platform: win32-x64
os: windows-latest
python-version: "3.11"
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- name: Install dependencies
run: pnpm install
working-directory: libs/cli
- name: Build CLI binary
run: |
pnpm run build:cli \
--platform ${{ matrix.platform }} \
--version ${{ needs.check-version.outputs.version }}
working-directory: libs/cli
env:
# Increase Node.js heap size for PyInstaller
NODE_OPTIONS: "--max-old-space-size=4096"
- name: List build output
run: |
echo "Build output:"
ls -la dist/platforms/${{ matrix.platform }}/ || true
ls -la dist/platforms/${{ matrix.platform }}/bin/ || true
working-directory: libs/cli
shell: bash
- name: Upload platform package
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: cli-${{ matrix.platform }}
path: libs/cli/dist/platforms/${{ matrix.platform }}/
retention-days: 7
if-no-files-found: error
# ==========================================================================
# Job 3: Publish all packages to npm
# ==========================================================================
publish:
name: Publish to npm
needs: [check-version, build]
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
registry-url: "https://registry.npmjs.org"
- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- name: Download all platform packages
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: libs/cli/dist/platforms/
pattern: cli-*
merge-multiple: true
- name: List downloaded artifacts
run: |
echo "Downloaded artifacts:"
find libs/cli/dist/platforms -type f | head -50
- name: Install dependencies
run: pnpm install
working-directory: libs/cli
- name: Build main package
run: pnpm run build
working-directory: libs/cli
- name: Update versions
run: |
VERSION="${{ needs.check-version.outputs.version }}"
echo "Setting version to $VERSION"
# Update main package version
cd libs/cli
npm version "$VERSION" --no-git-tag-version --allow-same-version
# Update platform package versions
for platform in linux-x64 linux-arm64 darwin-x64 darwin-arm64 win32-x64; do
if [ -d "dist/platforms/$platform" ]; then
echo "Updating $platform to version $VERSION"
cd "dist/platforms/$platform"
npm version "$VERSION" --no-git-tag-version --allow-same-version
cd - > /dev/null
else
echo "Warning: Platform $platform not found"
fi
done
- name: Publish platform packages
if: ${{ github.event.inputs.dry_run != 'true' }}
run: |
for platform in linux-x64 linux-arm64 darwin-x64 darwin-arm64 win32-x64; do
if [ -d "libs/cli/dist/platforms/$platform" ]; then
echo "Publishing @deepagents-cli/$platform..."
cd "libs/cli/dist/platforms/$platform"
# Try to publish, continue on error (may already exist)
npm publish --access public || echo "Warning: Failed to publish $platform (may already exist)"
cd - > /dev/null
fi
done
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish main package
if: ${{ github.event.inputs.dry_run != 'true' }}
run: |
echo "Publishing deepagents-cli..."
npm publish --access public
working-directory: libs/cli
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Dry run summary
if: ${{ github.event.inputs.dry_run == 'true' }}
run: |
echo "### Dry Run - Would have published:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- deepagents-cli@${{ needs.check-version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
for platform in linux-x64 linux-arm64 darwin-x64 darwin-arm64 win32-x64; do
echo "- @deepagents-cli/$platform@${{ needs.check-version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
done
- name: Publish summary
if: ${{ github.event.inputs.dry_run != 'true' }}
run: |
echo "### Published Packages" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Version: ${{ needs.check-version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Package | Status |" >> $GITHUB_STEP_SUMMARY
echo "|---------|--------|" >> $GITHUB_STEP_SUMMARY
echo "| deepagents-cli | ✅ Published |" >> $GITHUB_STEP_SUMMARY
for platform in linux-x64 linux-arm64 darwin-x64 darwin-arm64 win32-x64; do
echo "| @deepagents-cli/$platform | ✅ Published |" >> $GITHUB_STEP_SUMMARY
done
# ==========================================================================
# Job 4: Create GitHub Release (optional)
# ==========================================================================
release:
name: Create Release
needs: [check-version, publish]
if: ${{ github.event.inputs.dry_run != 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Create Release
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
with:
tag_name: cli-v${{ needs.check-version.outputs.version }}
name: deepagents-cli v${{ needs.check-version.outputs.version }}
body: |
## deepagents-cli v${{ needs.check-version.outputs.version }}
This release wraps [deepagents-cli ${{ needs.check-version.outputs.version }}](https://pypi.org/project/deepagents-cli/${{ needs.check-version.outputs.version }}/) from PyPI.
### Installation
```bash
npm install -g deepagents-cli
```
### Supported Platforms
- Linux x64
- Linux ARM64
- macOS Intel (x64)
- macOS Apple Silicon (ARM64)
- Windows x64
### Links
- [npm package](https://www.npmjs.com/package/deepagents-cli)
- [PyPI package](https://pypi.org/project/deepagents-cli/)
- [Documentation](https://github.com/langchain-ai/deepagentsjs/tree/main/libs/cli)
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}