-
Notifications
You must be signed in to change notification settings - Fork 46
Add setup-cli action for installing gh-aw CLI by release tag #11683
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot do not support long sha, only releases tags |
|
@copilot the install.sh script should do a checksum validation |
|
@copilot add integration test |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Enabled checksum validation for GitHub Actions context. When INPUT_VERSION is set, SKIP_CHECKSUM is now set to false. Commit: 46995e9
Added integration test in pkg/cli/setup_cli_action_integration_test.go with 8 test cases covering script syntax, INPUT_VERSION support, gh extension install logic, release validation, checksum enablement, and sync verification. All tests passing. Commit: 46995e9 |
|
Use the current action mode to decide how to generate the steps in the copilot setup step .yml file. In release mode, it should use the new GitHub action. Update the copilot step setup configuration code to support updating an existing .yml file with the new step syntax. |
|
@copilot Use the current action mode to decide how to generate the steps in the copilot setup step .yml file. In release mode, it should use the new GitHub action. Update the copilot step setup configuration code to support updating an existing .yml file with the new step syntax. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Implemented action mode support. In release mode, copilot-setup-steps.yml now uses |
|
@copilot the copilot template should use the release tag for the action and the version . See release tag constant |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Updated to use GetVersion() dynamically for both the action reference tag and version parameter. In release mode, generates |
|
@copilot add tests for create/update copilot step file tests. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added 8 new comprehensive test cases for create/update scenarios:
Total: 15 copilot setup tests, all passing. Commit: f7c885c |
Adds
actions/setup-clito install gh-aw CLI extension by release tag with fallback installation strategies and checksum verification.New Action
actions/setup-cli/versioninput: accepts release tags (e.g.,v0.37.18)gh extension installfirst, falls back to direct binary downloadinstalled-versionfor workflow consumptionEnhanced
install-gh-aw.shAdded capabilities while maintaining backward compatibility:
INPUT_VERSION: reads version from environment for GitHub Actions integration--gh-install: flag to enable gh extension install attemptGITHUB_OUTPUT: writesinstalled_versionfor action outputsBuild Integration
Makefilesync-action-scriptstarget copiesinstall-gh-aw.sh→actions/setup-cli/install.shmake buildactions/setup-cli/install.shaslinguist-generated=truein.gitattributesCopilot Setup Integration
Action Mode Support for
copilot-setup-steps.ymlpkg/cli/copilot_setup.goto generate different YAML based on action mode:githubnext/gh-aw/actions/setup-cli@{version}with dynamic version fromGetVersion()install-gh-aw.sh(backward compatible)ensureCopilotSetupSteps()to accept action mode and version parametersinjectExtensionInstallStep()to inject appropriate steps for each mode with dynamic versioning.ymlfiles with new action syntaxGetVersion()in release modeExample outputs:
Release mode (using GetVersion() = "v1.2.3"):
Dev mode:
Testing
actions/setup-cli/install_test.shpkg/cli/setup_cli_action_integration_test.gowith 8 test cases covering script syntax, INPUT_VERSION support, gh extension install logic, release validation, checksum enablement, and sync verificationOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.