mirror of
https://github.com/trycua/computer.git
synced 2026-01-01 19:10:30 -06:00
Delete .github/workflows/publish-all.yml
This commit is contained in:
227
.github/workflows/publish-all.yml
vendored
227
.github/workflows/publish-all.yml
vendored
@@ -1,227 +0,0 @@
|
||||
name: Publish All Packages
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*' # For global releases (vX.Y.Z format)
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Version to publish (without v prefix)'
|
||||
required: true
|
||||
default: '0.1.0'
|
||||
packages:
|
||||
description: 'Packages to publish (comma-separated)'
|
||||
required: false
|
||||
default: 'core,pylume,computer,som,agent,computer-server'
|
||||
|
||||
# Adding permissions at workflow level
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
setup:
|
||||
runs-on: macos-latest
|
||||
outputs:
|
||||
version: ${{ steps.get-version.outputs.version }}
|
||||
publish_core: ${{ steps.set-packages.outputs.publish_core }}
|
||||
publish_pylume: ${{ steps.set-packages.outputs.publish_pylume }}
|
||||
publish_computer: ${{ steps.set-packages.outputs.publish_computer }}
|
||||
publish_som: ${{ steps.set-packages.outputs.publish_som }}
|
||||
publish_agent: ${{ steps.set-packages.outputs.publish_agent }}
|
||||
publish_computer_server: ${{ steps.set-packages.outputs.publish_computer_server }}
|
||||
steps:
|
||||
- name: Determine version
|
||||
id: get-version
|
||||
run: |
|
||||
if [ "${{ github.event_name }}" == "push" ]; then
|
||||
# Extract version from tag (for global releases)
|
||||
if [[ "${{ github.ref }}" =~ ^refs/tags/v([0-9]+\.[0-9]+\.[0-9]+) ]]; then
|
||||
VERSION=${BASH_REMATCH[1]}
|
||||
else
|
||||
echo "Invalid tag format for global release"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# Use version from workflow dispatch
|
||||
VERSION=${{ github.event.inputs.version }}
|
||||
fi
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
echo "Using version: $VERSION"
|
||||
|
||||
- name: Determine packages to publish
|
||||
id: set-packages
|
||||
run: |
|
||||
# Default to all packages for tag-based releases
|
||||
if [ "${{ github.event_name }}" == "push" ]; then
|
||||
PACKAGES="core,pylume,computer,som,agent,computer-server"
|
||||
else
|
||||
# Use packages from workflow dispatch
|
||||
PACKAGES="${{ github.event.inputs.packages }}"
|
||||
fi
|
||||
|
||||
# Set individual flags for each package
|
||||
echo "publish_core=$(echo $PACKAGES | grep -q "core" && echo "true" || echo "false")" >> $GITHUB_OUTPUT
|
||||
echo "publish_pylume=$(echo $PACKAGES | grep -q "pylume" && echo "true" || echo "false")" >> $GITHUB_OUTPUT
|
||||
echo "publish_computer=$(echo $PACKAGES | grep -q "computer" && echo "true" || echo "false")" >> $GITHUB_OUTPUT
|
||||
echo "publish_som=$(echo $PACKAGES | grep -q "som" && echo "true" || echo "false")" >> $GITHUB_OUTPUT
|
||||
echo "publish_agent=$(echo $PACKAGES | grep -q "agent" && echo "true" || echo "false")" >> $GITHUB_OUTPUT
|
||||
echo "publish_computer_server=$(echo $PACKAGES | grep -q "computer-server" && echo "true" || echo "false")" >> $GITHUB_OUTPUT
|
||||
|
||||
echo "Publishing packages: $PACKAGES"
|
||||
|
||||
publish-core:
|
||||
needs: setup
|
||||
if: ${{ needs.setup.outputs.publish_core == 'true' }}
|
||||
uses: ./.github/workflows/publish-core.yml
|
||||
with:
|
||||
version: ${{ needs.setup.outputs.version }}
|
||||
secrets: inherit
|
||||
|
||||
# Add a delay to ensure PyPI has registered the new core version
|
||||
wait-for-core:
|
||||
needs: [setup, publish-core]
|
||||
if: ${{ needs.setup.outputs.publish_core == 'true' && (needs.setup.outputs.publish_computer == 'true' || needs.setup.outputs.publish_agent == 'true') }}
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Wait for PyPI to update
|
||||
run: |
|
||||
echo "Waiting for PyPI to register the new core version..."
|
||||
sleep 60 # Wait 60 seconds for PyPI to update its index
|
||||
|
||||
publish-pylume:
|
||||
needs: setup
|
||||
if: ${{ needs.setup.outputs.publish_pylume == 'true' }}
|
||||
uses: ./.github/workflows/publish-pylume.yml
|
||||
with:
|
||||
version: ${{ needs.setup.outputs.version }}
|
||||
secrets: inherit
|
||||
|
||||
# Add a delay to ensure PyPI has registered the new pylume version
|
||||
wait-for-pylume:
|
||||
needs: [setup, publish-pylume]
|
||||
if: ${{ needs.setup.outputs.publish_pylume == 'true' && (needs.setup.outputs.publish_computer == 'true' || needs.setup.outputs.publish_som == 'true') }}
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Wait for PyPI to update
|
||||
run: |
|
||||
echo "Waiting for PyPI to register the new pylume version..."
|
||||
sleep 60 # Wait 60 seconds for PyPI to update its index
|
||||
|
||||
publish-computer:
|
||||
needs: [setup, publish-core, publish-pylume, wait-for-core, wait-for-pylume]
|
||||
if: ${{ needs.setup.outputs.publish_computer == 'true' }}
|
||||
uses: ./.github/workflows/publish-computer.yml
|
||||
with:
|
||||
version: ${{ needs.setup.outputs.version }}
|
||||
secrets: inherit
|
||||
|
||||
publish-som:
|
||||
needs: [setup, publish-pylume, wait-for-pylume]
|
||||
if: ${{ needs.setup.outputs.publish_som == 'true' }}
|
||||
uses: ./.github/workflows/publish-som.yml
|
||||
with:
|
||||
version: ${{ needs.setup.outputs.version }}
|
||||
secrets: inherit
|
||||
|
||||
# Add a delay to ensure PyPI has registered the new computer and som versions
|
||||
wait-for-deps:
|
||||
needs: [setup, publish-computer, publish-som]
|
||||
if: ${{ (needs.setup.outputs.publish_computer == 'true' || needs.setup.outputs.publish_som == 'true') && needs.setup.outputs.publish_agent == 'true' }}
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Wait for PyPI to update
|
||||
run: |
|
||||
echo "Waiting for PyPI to register new dependency versions..."
|
||||
sleep 60 # Wait 60 seconds for PyPI to update its index
|
||||
|
||||
publish-agent:
|
||||
needs: [setup, publish-core, publish-computer, publish-som, wait-for-core, wait-for-deps]
|
||||
if: ${{ needs.setup.outputs.publish_agent == 'true' }}
|
||||
uses: ./.github/workflows/publish-agent.yml
|
||||
with:
|
||||
version: ${{ needs.setup.outputs.version }}
|
||||
secrets: inherit
|
||||
|
||||
publish-computer-server:
|
||||
needs: [setup, publish-computer]
|
||||
if: ${{ needs.setup.outputs.publish_computer_server == 'true' }}
|
||||
uses: ./.github/workflows/publish-computer-server.yml
|
||||
with:
|
||||
version: ${{ needs.setup.outputs.version }}
|
||||
secrets: inherit
|
||||
|
||||
# Create a global release for the entire CUA project
|
||||
create-global-release:
|
||||
needs: [setup, publish-core, publish-pylume, publish-computer, publish-som, publish-agent, publish-computer-server]
|
||||
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Create Summary Release Notes
|
||||
id: release_notes
|
||||
run: |
|
||||
VERSION=${{ needs.setup.outputs.version }}
|
||||
|
||||
# Create the release notes file
|
||||
echo "# CUA v${VERSION} Release" > release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
echo "This is a global release of the Computer Universal Automation (CUA) project." >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
|
||||
echo "## Released Packages" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
|
||||
# Add links to individual package releases
|
||||
if [[ "${{ needs.setup.outputs.publish_core }}" == "true" ]]; then
|
||||
echo "- [cua-core v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/core-v${VERSION})" >> release_notes.md
|
||||
fi
|
||||
|
||||
if [[ "${{ needs.setup.outputs.publish_pylume }}" == "true" ]]; then
|
||||
echo "- [pylume v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/pylume-v${VERSION})" >> release_notes.md
|
||||
fi
|
||||
|
||||
if [[ "${{ needs.setup.outputs.publish_computer }}" == "true" ]]; then
|
||||
echo "- [cua-computer v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/computer-v${VERSION})" >> release_notes.md
|
||||
fi
|
||||
|
||||
if [[ "${{ needs.setup.outputs.publish_som }}" == "true" ]]; then
|
||||
echo "- [cua-som v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/som-v${VERSION})" >> release_notes.md
|
||||
fi
|
||||
|
||||
if [[ "${{ needs.setup.outputs.publish_agent }}" == "true" ]]; then
|
||||
echo "- [cua-agent v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/agent-v${VERSION})" >> release_notes.md
|
||||
fi
|
||||
|
||||
if [[ "${{ needs.setup.outputs.publish_computer_server }}" == "true" ]]; then
|
||||
echo "- [cua-computer-server v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/computer-server-v${VERSION})" >> release_notes.md
|
||||
fi
|
||||
|
||||
echo "" >> release_notes.md
|
||||
echo "## Installation" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
echo "### Core Libraries" >> release_notes.md
|
||||
echo "```bash" >> release_notes.md
|
||||
echo "pip install cua-core==${VERSION}" >> release_notes.md
|
||||
echo "pip install cua-computer==${VERSION}" >> release_notes.md
|
||||
echo "pip install pylume==${VERSION}" >> release_notes.md
|
||||
echo "```" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
echo "### Agent with SOM (Recommended)" >> release_notes.md
|
||||
echo "```bash" >> release_notes.md
|
||||
echo "pip install cua-agent[som]==${VERSION}" >> release_notes.md
|
||||
echo "```" >> release_notes.md
|
||||
|
||||
echo "Release notes created:"
|
||||
cat release_notes.md
|
||||
|
||||
- name: Create GitHub Global Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
name: "CUA v${{ needs.setup.outputs.version }}"
|
||||
body_path: release_notes.md
|
||||
draft: false
|
||||
prerelease: false
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
Reference in New Issue
Block a user