Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
5d514c5
Initial plan for issue
Copilot May 22, 2025
af09b71
Create GitHub workflow for Azure/typespec-azure integration check
Copilot May 22, 2025
7884b9f
Enhance Azure/typespec-azure integration check with better logging an…
Copilot May 22, 2025
2a8c3f1
Add README to workflows directory documenting the Azure integration c…
Copilot May 22, 2025
328e7c4
Fix linting issues in typespec-azure-integration-check workflow
Copilot May 22, 2025
9bdc0c6
Address PR review feedback
Copilot May 22, 2025
d65e9a4
Add TypeSpec repo checkout step to workflow
Copilot May 22, 2025
8b4a43e
Apply PR feedback: simplify workflow steps
Copilot May 22, 2025
48b49e9
Remove pipe characters from workflow run commands
Copilot May 22, 2025
ba95890
Fix core submodule update in Azure integration check workflow
Copilot May 22, 2025
84158cc
Update core submodule handling to use git commands
Copilot May 22, 2025
d46ece2
Format workflow file and update copilot instructions
Copilot May 22, 2025
823494a
Remove unnecessary inputs and add E2E test step
Copilot May 22, 2025
f1aa179
Move pnpm format instruction to Install and Build section
Copilot May 22, 2025
a6f8133
Format typespec-azure-integration-check.yml workflow file
Copilot May 22, 2025
dff34cd
Add Playwright install step and format workflow file
Copilot May 22, 2025
c7da9b8
Move Playwright install step after pnpm install
Copilot May 22, 2025
643c6c3
Fix formatting issues in workflow files by adding newlines at end
Copilot May 22, 2025
76e0f6e
Format .github/workflows/README.md with proper newline at the end
Copilot May 22, 2025
9599294
Format README.md with newline at end of file
Copilot May 23, 2025
1a47176
Fix formatting in .github/workflows/README.md
Copilot May 23, 2025
2d3a465
Fix formatting in .github/workflows/README.md file
Copilot May 23, 2025
1e2ba12
Update .github/workflows/typespec-azure-integration-check.yml
timotheeguerin May 23, 2025
29111e0
Update .github/workflows/typespec-azure-integration-check.yml
timotheeguerin May 23, 2025
a419383
Rename workflow to external-integration.yml and update README
Copilot May 23, 2025
50fbcf0
Merge branch 'main' into copilot/fix-5058
chrisradek May 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
- Use `pnpm install` to install dependencies
- Use `pnpm build` to build every package
- Use `pnpm -r --filter "<pkgName>..." build` to build to a specific package `<pkgName>`
- Use `pnpm format` to format all files

## Describing changes

Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# TypeSpec Workflows

This directory contains the GitHub workflows used for TypeSpec repository CI/CD processes.

## Available Workflows

| Workflow | Description |
| -------------------------- | ---------------------------------------------------------------------------------- |
| `consistency.yml` | Ensures code consistency, including changelog, spellcheck, formatting, and linting |
| `codeql.yml` | Runs CodeQL analysis for code security |
| `external-integration.yml` | Optional CI check that verifies compatibility with Azure/typespec-azure repository |

## TypeSpec-Azure Integration Check

The `external-integration.yml` workflow verifies that changes in the TypeSpec repository do not break compatibility with the Azure/typespec-azure repository, which depends on TypeSpec as a core dependency.

### How It Works

1. Clones the Azure/typespec-azure repository
2. Finds the "core" submodule that references microsoft/typespec
3. Updates that submodule to use the changes from the current PR
4. Runs the build and tests for the Azure/typespec-azure repository

### When It Runs

This check runs on:

- Pull requests to the main branch
- Manual triggers via workflow_dispatch

### What It Checks

- Whether the Azure/typespec-azure repository can build successfully with the changes from the PR
- Whether all tests in the Azure/typespec-azure repository pass with the changes

### Configuration

This is an optional check that won't block PRs from being merged. It only runs on Linux with Node LTS (24.x) to minimize resource usage while still catching compatibility issues.
67 changes: 67 additions & 0 deletions .github/workflows/external-integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Integration

on:
pull_request:
branches: ["main"]
paths-ignore:
- "packages/http-client-csharp/**"
- "packages/http-client-java/**"
- "packages/http-client-python/**"
- "website/**"
# Allow manual triggering
workflow_dispatch:

# This check is optional by default
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
azure-integration-check:
name: Azure/typespec-azure
runs-on: ubuntu-latest
# Only run if not from dependabot, publish, backmerge, or revert branches
if: |
!startsWith(github.head_ref, 'dependabot/') &&
!startsWith(github.head_ref, 'publish/') &&
!startsWith(github.head_ref, 'backmerge/') &&
!startsWith(github.head_ref, 'revert-')

steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24.x # Using current LTS

- name: Checkout Azure/typespec-azure repo
uses: actions/checkout@v4
with:
repository: Azure/typespec-azure
submodules: true

- name: Install pnpm
uses: pnpm/action-setup@v3

- name: Update core submodule to PR commit
run: |
# Configure git to use the PR's repository as a remote for the submodule
cd core
git remote add pr https://github.com/${{ github.repository }}.git
git fetch pr ${{ github.event.pull_request.head.sha }}
# Update the submodule to point to the PR commit
git checkout ${{ github.event.pull_request.head.sha }}

- name: Install
run: pnpm install

- name: Install Playwright
run: pnpm exec playwright install

- name: Build
run: pnpm build

- name: Test
run: pnpm test

- name: E2E Test
run: pnpm test:e2e
Loading