Skip to content

Add copilot setup workflow and instructions #2062

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

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft

Conversation

Copilot
Copy link

@Copilot Copilot AI commented Jun 11, 2025

Added GitHub Copilot agent support for the ably-cocoa repository by creating two new files:

Files Added

.github/workflows/copilot-setup-steps.yml

A GitHub Actions workflow that sets up the complete development environment for Copilot agents, including:

  • Xcode 16.3 selection and environment configuration
  • Simulator reset for clean testing state
  • Dependencies installation (xcbeautify, carthage, submodules, ruby gems)
  • Carthage dependencies update for all platforms
  • Setup verification with version checks

.github/copilot-instructions.md

Comprehensive development instructions for Copilot agents containing:

  • Prerequisites and initial setup steps (make update)
  • All key development commands for building and testing across iOS/tvOS/macOS platforms
  • Dependency management commands for Carthage updates
  • Fastlane commands with required environment variables (ABLY_ENV=sandbox)
  • Project structure overview and common troubleshooting tips

Implementation Details

The workflow follows the same structure and steps as the existing integration-test.yaml workflow, ensuring consistency with the current CI setup. All commands and Make targets have been verified against the actual Makefile and fastlane/Fastfile to ensure accuracy.

This enables GitHub Copilot agents to automatically set up the development environment and understand the available build/test commands when working on tasks in this repository.

Fixes #2061.


💡 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.

@Copilot Copilot AI changed the title [WIP] Add copilot-setup-steps.yml Add copilot setup workflow and instructions Jun 11, 2025
@Copilot Copilot AI requested a review from owenpearson June 11, 2025 11:12
Copilot finished work on behalf of owenpearson June 11, 2025 11:12
@@ -0,0 +1,46 @@
name: "Copilot Setup Steps"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Is there a way to cache this build so that we don't have to install this stuff again each time Copilot starts?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, GitHub Actions supports caching. We could add caching for Carthage dependencies, Ruby gems, and brew packages. This would involve adding cache actions before the installation steps and using cache keys based on dependency file hashes (like Cartfile.resolved, Gemfile.lock). Would you like me to implement caching in the workflow?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes please

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've implemented caching for the setup workflow in commit eb04176. Added caching for Homebrew packages (xcbeautify, carthage), Ruby gems (based on Gemfile.lock), and Carthage dependencies (based on Cartfile.resolved). I also fixed the job name to copilot-setup-steps which was causing the setup steps error.

echo "Carthage version:"
carthage version
echo "Ruby gems installed:"
bundle list
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add a new line at the end of this file

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the newline at the end of the file in commit cd027f6.

Copy link
Author

Copilot AI commented Jun 11, 2025

@owenpearson Thanks for sending me some feedback. Unfortunately, I hit an error while trying to use the custom Copilot setup steps configured for this repository. The error I am seeing is:

No `copilot-setup-steps` job found in your Copilot setup steps workflow file. Please ensure you have a single job named `copilot-setup-steps`. For more details, see https://gh.io/copilot/actions-setup-steps.

Once you or someone with the necessary access fixes the problem, please let me know in a comment and I'll try again. Thanks!

Copilot finished work on behalf of owenpearson June 11, 2025 11:17
Copy link
Author

Copilot AI commented Jun 11, 2025

@owenpearson Thanks for sending me some feedback. Unfortunately, I hit an error while trying to use the custom Copilot setup steps configured for this repository. The error I am seeing is:

No `copilot-setup-steps` job found in your Copilot setup steps workflow file. Please ensure you have a single job named `copilot-setup-steps`. For more details, see https://gh.io/copilot/actions-setup-steps.

Once you or someone with the necessary access fixes the problem, please let me know in a comment and I'll try again. Thanks!

Copilot finished work on behalf of owenpearson June 11, 2025 11:21
@owenpearson
Copy link
Member

@copilot can you try running some simple commands to check that changing the job name to copilot-setup-steps actually worked?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Add copilot-setup-steps.yml
2 participants