diff --git a/.github/actions/publish-release/action.yml b/.github/actions/publish-release/action.yml index 262d56d77c..46025d5dce 100644 --- a/.github/actions/publish-release/action.yml +++ b/.github/actions/publish-release/action.yml @@ -69,6 +69,11 @@ inputs: a2a-package-name: description: 'The name of the a2a package.' required: true + use-bundle-release: + description: 'Whether to use the new bundle-based release process.' + type: 'string' + required: false + default: 'false' runs: using: 'composite' steps: @@ -119,6 +124,7 @@ runs: fi - name: '🛠️ Build and Prepare Packages' + if: "${{ inputs.use-bundle-release == 'false' }}" working-directory: '${{ inputs.working-directory }}' shell: 'bash' run: | @@ -126,6 +132,7 @@ runs: npm run prepare:package - name: '🎁 Bundle' + if: "${{ inputs.use-bundle-release == 'true' }}" working-directory: '${{ inputs.working-directory }}' shell: 'bash' run: | @@ -133,13 +140,25 @@ runs: # TODO: Refactor this github specific publishing script to be generalized based upon inputs. - name: '📦 Prepare for GitHub release' - if: "inputs.npm-registry-url == 'https://npm.pkg.github.com/'" + if: "inputs.npm-registry-url == 'https://npm.pkg.github.com/' && inputs.use-bundle-release == 'true'" working-directory: '${{ inputs.working-directory }}' shell: 'bash' run: | node ${{ github.workspace }}/scripts/prepare-github-release.js + - name: '📦 Publish Root Package' + if: "${{ inputs.use-bundle-release == 'true' }}" + working-directory: '${{ inputs.working-directory }}' + env: + NODE_AUTH_TOKEN: '${{ inputs.github-token }}' + shell: 'bash' + run: | + npm publish \ + --dry-run="${{ inputs.dry-run }}" \ + --no-tag + - name: 'Configure npm for publishing to npm' + if: "${{ inputs.use-bundle-release == 'false' }}" uses: 'actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020' with: node-version-file: '${{ inputs.working-directory }}/.nvmrc' @@ -147,6 +166,7 @@ runs: scope: '${{inputs.npm-registry-scope}}' - name: 'Get core Token' + if: "${{ inputs.use-bundle-release == 'false' }}" uses: './.github/actions/npm-auth-token' id: 'core-token' with: @@ -157,6 +177,7 @@ runs: wombat-token-a2a-server: '${{ inputs.wombat-token-a2a-server }}' - name: '📦 Publish CORE to NPM' + if: "${{ inputs.use-bundle-release == 'false' }}" working-directory: '${{ inputs.working-directory }}' env: NODE_AUTH_TOKEN: '${{ steps.core-token.outputs.auth-token }}' @@ -169,8 +190,8 @@ runs: npm dist-tag rm ${{ inputs.core-package-name }} false --silent - name: '🔗 Install latest core package' + if: "${{ inputs.dry-run != 'true' && inputs.use-bundle-release == 'false' }}" working-directory: '${{ inputs.working-directory }}' - if: "${{ inputs.dry-run != 'true' }}" shell: 'bash' run: | npm install "${{ inputs.core-package-name }}@${{ inputs.release-version }}" \ @@ -179,6 +200,7 @@ runs: --save-exact - name: 'Get CLI Token' + if: "${{ inputs.use-bundle-release == 'false' }}" uses: './.github/actions/npm-auth-token' id: 'cli-token' with: @@ -189,6 +211,7 @@ runs: wombat-token-a2a-server: '${{ inputs.wombat-token-a2a-server }}' - name: '📦 Publish CLI' + if: "${{ inputs.use-bundle-release == 'false' }}" working-directory: '${{ inputs.working-directory }}' env: NODE_AUTH_TOKEN: '${{ steps.cli-token.outputs.auth-token }}' @@ -200,6 +223,7 @@ runs: npm dist-tag rm ${{ inputs.cli-package-name }} false --silent - name: 'Get a2a-server Token' + if: "${{ inputs.use-bundle-release == 'false' }}" uses: './.github/actions/npm-auth-token' id: 'a2a-token' with: @@ -210,6 +234,7 @@ runs: wombat-token-a2a-server: '${{ inputs.wombat-token-a2a-server }}' - name: '📦 Publish a2a' + if: "${{ inputs.use-bundle-release == 'false' }}" working-directory: '${{ inputs.working-directory }}' env: NODE_AUTH_TOKEN: '${{ steps.a2a-token.outputs.auth-token }}' @@ -223,8 +248,8 @@ runs: npm dist-tag rm ${{ inputs.a2a-package-name }} false --silent - name: '🔬 Verify NPM release by version' + if: "${{ inputs.dry-run != 'true' && inputs.force-skip-tests != 'true' && inputs.use-bundle-release == 'false' }}" uses: './.github/actions/verify-release' - if: "${{ inputs.dry-run != 'true' && inputs.force-skip-tests != 'true' }}" with: npm-package: '${{ inputs.cli-package-name }}@${{ inputs.release-version }}' expected-version: '${{ inputs.release-version }}' @@ -249,6 +274,13 @@ runs: a2a-package-name: '${{ inputs.a2a-package-name }}' working-directory: '${{ inputs.working-directory }}' + - name: '🔬 Verify Bundled NPM release by version' + if: "${{ inputs.dry-run != 'true' && inputs.force-skip-tests != 'true' && inputs.use-bundle-release == 'true' }}" + working-directory: '${{ inputs.working-directory }}' + shell: 'bash' + run: | + npx -y ${{ inputs.cli-package-name }}@${{ inputs.release-version }} --version + - name: '🎉 Create GitHub Release' working-directory: '${{ inputs.working-directory }}' if: "${{ inputs.dry-run != 'true' && inputs.skip-github-release != 'true' && inputs.npm-tag != 'dev' && inputs.npm-registry-url != 'https://npm.pkg.github.com/' }}" diff --git a/.github/workflows/release-manual.yml b/.github/workflows/release-manual.yml index ffe326441c..cf08f12cc9 100644 --- a/.github/workflows/release-manual.yml +++ b/.github/workflows/release-manual.yml @@ -36,6 +36,11 @@ on: required: false type: 'boolean' default: false + use_bundle_release: + description: 'Use the new bundle-based release process.' + required: true + type: 'boolean' + default: false environment: description: 'Environment' required: false @@ -121,6 +126,7 @@ jobs: cli-package-name: '${{ vars.CLI_PACKAGE_NAME }}' core-package-name: '${{ vars.CORE_PACKAGE_NAME }}' a2a-package-name: '${{ vars.A2A_PACKAGE_NAME }}' + use-bundle-release: '${{ github.event.inputs.use_bundle_release }}' - name: 'Create Issue on Failure' if: '${{ failure() && github.event.inputs.dry_run == false }}' diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index 7ef200a0f1..10c340049a 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -135,6 +135,7 @@ jobs: cli-package-name: '${{ vars.CLI_PACKAGE_NAME }}' core-package-name: '${{ vars.CORE_PACKAGE_NAME }}' a2a-package-name: '${{ vars.A2A_PACKAGE_NAME }}' + use-bundle-release: 'true' - name: 'Create and Merge Pull Request' if: "github.event.inputs.environment != 'dev'"