diff --git a/.github/workflows/update-electron-types.yaml b/.github/workflows/update-electron-types.yaml new file mode 100644 index 000000000..cb4043135 --- /dev/null +++ b/.github/workflows/update-electron-types.yaml @@ -0,0 +1,44 @@ +name: Update Electron Types + +on: + workflow_dispatch: + +jobs: + update-electron-types: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: 'npm' + + - name: Update electron types + run: npm install @comfyorg/comfyui-electron-types@latest + + - name: Get new version + id: get-version + run: | + NEW_VERSION=$(node -e "console.log(JSON.parse(require('fs').readFileSync('./package-lock.json')).packages['node_modules/@comfyorg/comfyui-electron-types'].version)") + echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: '[chore] Update electron-types to ${{ steps.get-version.outputs.NEW_VERSION }}' + title: '[chore] Update electron-types to ${{ steps.get-version.outputs.NEW_VERSION }}' + body: | + Automated update of desktop API types to version ${{ steps.get-version.outputs.NEW_VERSION }}. + branch: update-electron-types-${{ steps.get-version.outputs.NEW_VERSION }} + base: main + labels: | + dependencies + Electron diff --git a/scripts/update-electron-types.js b/scripts/update-electron-types.js deleted file mode 100644 index 0ee57a37b..000000000 --- a/scripts/update-electron-types.js +++ /dev/null @@ -1,43 +0,0 @@ -import { execSync } from 'child_process' -import { readFileSync } from 'fs' - -const packageName = '@comfyorg/comfyui-electron-types' -const description = 'desktop API types' - -try { - // Create a new branch - console.log('Creating new branch...') - const date = new Date() - const isoDate = date.toISOString().split('T')[0] - const timestamp = date.getTime() - const branchName = `update-electron-types-${isoDate}-${timestamp}` - execSync(`git checkout -b ${branchName} -t origin/main`, { stdio: 'inherit' }) - - // Update npm package to latest version - console.log(`Updating ${description}...`) - execSync(`npm install ${packageName}@latest`, { - stdio: 'inherit' - }) - - // Get the new version from package.json - const packageLock = JSON.parse(readFileSync('./package-lock.json', 'utf8')) - const newVersion = packageLock.packages[`node_modules/${packageName}`].version - - // Stage changes - const message = `[chore] Update electron-types to ${newVersion}` - execSync('git add package.json package-lock.json', { stdio: 'inherit' }) - execSync(`git commit -m "${message}"`, { stdio: 'inherit' }) - - // Create the PR - console.log('Creating PR...') - execSync( - `gh pr create --title "${message}" --label "dependencies" --body "Automated update of ${description} to version ${newVersion}."`, - { stdio: 'inherit' } - ) - - console.log( - `✅ Successfully created PR for ${description} update to ${newVersion}` - ) -} catch (error) { - console.error('❌ Error during update process:', error.message) -}