Skip to content

Commit 2982f34

Browse files
YunchuWangCopilot
andcommitted
ci(functions-e2e): run on pull_request + build in-repo packages
The Functions host E2E workflow (#303) was workflow_dispatch-only. Enable it on pull_request scoped to the Functions surface (test/e2e-functions/**, packages/azure-functions-durable/**, and this workflow file) so changes to the consolidated gRPC path are exercised; core-only PRs keep their own suites. Also build the in-repo durable-functions (+ core) packages after the root npm ci and before the test-app install, since the test-app now consumes them via file: links (see the test-app repoint) rather than published packages. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6e5be22b-b727-4ccf-8668-60397bb403a0
1 parent 940b4a0 commit 2982f34

1 file changed

Lines changed: 31 additions & 17 deletions

File tree

.github/workflows/functions-e2e-tests.yaml

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,29 @@ name: 🧪 Functions Host E2E Tests
44
# test/e2e-functions/test-app (backed by Azurite / AzureStorage) and drives the
55
# app over HTTP, porting the extension repo's `BasicNode` app + xUnit tests.
66
#
7-
# The test-app depends on the PUBLISHED `durable-functions` + `@azure/functions`
8-
# packages, so it installs and runs without any in-repo package build. The suite
9-
# self-gates: each spec SKIPS cleanly when the Azure Functions Core Tools (`func`)
10-
# or the Azurite storage emulator are unavailable, and RUNS when both are present.
11-
# In CI below we install and start both, so the suite runs for real; the self-skip
12-
# is the safety net that keeps the job green if a prerequisite fails to come up.
7+
# The test-app consumes the IN-REPO `durable-functions` (compat) package and core
8+
# `@microsoft/durabletask-js` via `file:` links, so those packages must be BUILT
9+
# before the test-app install (see the build step below). The suite self-gates:
10+
# each spec SKIPS cleanly when the Azure Functions Core Tools (`func`) or the
11+
# Azurite storage emulator are unavailable, and RUNS when both are present. In CI
12+
# below we install and start both, so the suite runs for real; the self-skip is
13+
# the safety net that keeps the job green if a prerequisite fails to come up.
1314
#
14-
# Triggering: this suite is run ad hoc (manual dispatch) for now while it beds in,
15-
# so it does not gate day-to-day PRs. Start it from the Actions tab via "Run
16-
# workflow" (workflow_dispatch). To re-enable automatic runs on pull requests
17-
# later, add a `pull_request` trigger scoped to `test/e2e-functions/**` and this
18-
# workflow file. NOTE: workflow_dispatch only appears in the Actions UI once this
19-
# file exists on the repository's default branch.
15+
# Triggering: this suite runs automatically on pull requests that touch the
16+
# Functions surface (`test/e2e-functions/**`, `packages/azure-functions-durable/**`,
17+
# or this workflow file), and can also be started ad hoc from the Actions tab via
18+
# "Run workflow" (workflow_dispatch). It is intentionally scoped to the Functions
19+
# surface and does NOT gate core-only PRs, which have their own suites. NOTE:
20+
# workflow_dispatch only appears in the Actions UI once this file exists on the
21+
# repository's default branch.
2022

2123
on:
2224
workflow_dispatch:
25+
pull_request:
26+
paths:
27+
- "test/e2e-functions/**"
28+
- "packages/azure-functions-durable/**"
29+
- ".github/workflows/functions-e2e-tests.yaml"
2330

2431
permissions:
2532
contents: read
@@ -43,12 +50,18 @@ jobs:
4350
node-version: ${{ matrix.node-version }}
4451
registry-url: "https://registry.npmjs.org"
4552

46-
# Root install provides jest + ts-jest used to run the spec files. The specs
47-
# do not depend on the core durabletask-js packages, so no workspace build is
48-
# required here.
53+
# Root install provides jest + ts-jest used to run the spec files, and lets
54+
# the workspace build below resolve the in-repo packages the test-app links
55+
# via `file:` refs.
4956
- name: ⚙️ Install dependencies
5057
run: npm ci
5158

59+
# Build the in-repo compat package (`durable-functions`); its build script
60+
# runs `build:core` first, so this also builds `packages/durabletask-js` into
61+
# dist/. Both must exist before the test-app's `file:`-linked install below.
62+
- name: 🏗️ Build in-repo durable-functions (+ core) for file: linking
63+
run: npm run build -w durable-functions
64+
5265
- name: 🔧 Install Azurite and Azure Functions Core Tools
5366
run: npm install -g azurite azure-functions-core-tools@4
5467

@@ -66,8 +79,9 @@ jobs:
6679
sleep 1
6780
done
6881
69-
# Installs the PUBLISHED durable-functions / @azure/functions packages and
70-
# compiles the ported BasicNode app to dist/ (consumed by `func start`).
82+
# Installs the in-repo `durable-functions` (+ core `@microsoft/durabletask-js`)
83+
# packages via the test-app's `file:` refs and compiles the ported BasicNode
84+
# app to dist/ (consumed by `func start`).
7185
- name: 📦 Install + build test-app
7286
working-directory: test/e2e-functions/test-app
7387
run: |

0 commit comments

Comments
 (0)