Skip to content

Commit 8d734ec

Browse files
committed
fix(ci): freeze orchestrated fhevm baseline
1 parent 40947da commit 8d734ec

2 files changed

Lines changed: 63 additions & 1 deletion

File tree

.github/workflows/test-suite-e2e-tests.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,12 @@ jobs:
210210
fi
211211
echo "LOCK_FILE=$lock_file" >> "$GITHUB_ENV"
212212
213+
- name: Require frozen baseline lock for orchestrated runs
214+
if: ${{ inputs.orchestrated && inputs.lock-artifact-name == '' }}
215+
run: |
216+
echo "Orchestrated e2e requires a frozen baseline lock artifact" >&2
217+
exit 1
218+
213219
- name: Resolve latest-main lock once
214220
if: ${{ inputs.lock-artifact-name == '' && !inputs.orchestrated }}
215221
working-directory: test-suite/fhevm
@@ -227,6 +233,9 @@ jobs:
227233
args=(--scenario "$SCENARIO")
228234
if [ -n "${LOCK_FILE:-}" ]; then
229235
args+=(--lock-file "$LOCK_FILE")
236+
elif [ "${{ inputs.orchestrated }}" = "true" ]; then
237+
echo "Orchestrated e2e requires a frozen baseline lock artifact" >&2
238+
exit 1
230239
else
231240
args+=(--target latest-main)
232241
fi
@@ -241,6 +250,9 @@ jobs:
241250
args=(--scenario "$SCENARIO")
242251
if [ -n "${LOCK_FILE:-}" ]; then
243252
args+=(--lock-file "$LOCK_FILE")
253+
elif [ "${{ inputs.orchestrated }}" = "true" ]; then
254+
echo "Orchestrated e2e requires a frozen baseline lock artifact" >&2
255+
exit 1
244256
else
245257
args+=(--target latest-main)
246258
fi

.github/workflows/test-suite-orchestrate-e2e-tests.yml

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,56 @@ concurrency:
1414
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
1515

1616
jobs:
17-
coprocessor-docker-build:
17+
resolve-baseline:
18+
name: resolve-baseline
1819
if: &build-trigger-condition |
1920
startsWith(github.head_ref, 'mergify/merge-queue/') || startsWith(github.base_ref, 'release/') || contains(github.event.pull_request.labels.*.name, 'e2e orchestrate test')
21+
runs-on: ubuntu-latest
22+
permissions:
23+
contents: 'read' # Required to checkout repository code
24+
packages: 'read' # Required to read GitHub package metadata during base-sha resolution
25+
env:
26+
BASE_SHA: ${{ github.event.pull_request.base.sha }}
27+
GH_TOKEN: ${{ github.token }}
28+
outputs:
29+
lock-artifact-name: ${{ steps.resolve-baseline.outputs.lock-artifact-name }}
30+
steps:
31+
- name: Checkout code
32+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
33+
with:
34+
persist-credentials: 'false'
35+
fetch-depth: 0
36+
37+
- name: Setup Bun
38+
uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2.1.3
39+
40+
- name: Install GitHub CLI
41+
run: |
42+
sudo apt-get update
43+
sudo apt-get install -y gh
44+
45+
- name: Install CLI deps
46+
working-directory: test-suite/fhevm
47+
run: bun install --frozen-lockfile
48+
49+
- id: resolve-baseline
50+
name: Resolve base-sha baseline lock
51+
working-directory: test-suite/fhevm
52+
run: |
53+
set -euo pipefail
54+
lock_path="$(./fhevm-cli resolve --target sha --sha "$BASE_SHA" --reset | tail -n 1)"
55+
artifact_name="fhevm-base-lock-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
56+
echo "lock-path=$lock_path" >> "$GITHUB_OUTPUT"
57+
echo "lock-artifact-name=$artifact_name" >> "$GITHUB_OUTPUT"
58+
59+
- name: Upload baseline lock
60+
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
61+
with:
62+
name: ${{ steps.resolve-baseline.outputs.lock-artifact-name }}
63+
path: ${{ steps.resolve-baseline.outputs.lock-path }}
64+
65+
coprocessor-docker-build:
66+
if: *build-trigger-condition
2067
uses: ./.github/workflows/coprocessor-docker-build.yml
2168
permissions: &docker_permissions
2269
actions: 'read' # Required to read workflow run information
@@ -61,6 +108,7 @@ jobs:
61108
create-e2e-tests-input:
62109
name: create-e2e-tests-input
63110
needs:
111+
- resolve-baseline
64112
- coprocessor-docker-build
65113
- gateway-contracts-docker-build
66114
- host-contracts-docker-build
@@ -91,6 +139,7 @@ jobs:
91139
gateway-version: ${{ steps.create-e2e-tests-input.outputs.gateway-version }}
92140
host-version: ${{ steps.create-e2e-tests-input.outputs.host-version }}
93141
kms-core-version: ${{ steps.create-e2e-tests-input.outputs.kms-core-version }}
142+
lock-artifact-name: ${{ needs.resolve-baseline.outputs.lock-artifact-name }}
94143
relayer-migrate-version: ${{ steps.create-e2e-tests-input.outputs.relayer-migrate-version }}
95144
relayer-version: ${{ steps.create-e2e-tests-input.outputs.relayer-version }}
96145
test-suite-version: ${{ steps.create-e2e-tests-input.outputs.test-suite-version }}
@@ -215,6 +264,7 @@ jobs:
215264
gateway-version: ${{ needs.create-e2e-tests-input.outputs.gateway-version }}
216265
host-version: ${{ needs.create-e2e-tests-input.outputs.host-version }}
217266
kms-core-version: ${{ needs.create-e2e-tests-input.outputs.kms-core-version }}
267+
lock-artifact-name: ${{ needs.create-e2e-tests-input.outputs.lock-artifact-name }}
218268
relayer-migrate-version: ${{ needs.create-e2e-tests-input.outputs.relayer-migrate-version }}
219269
relayer-version: ${{ needs.create-e2e-tests-input.outputs.relayer-version }}
220270
scenario: ${{ startsWith(github.base_ref, 'release/') && 'two-of-two' || 'two-of-two-multi-chain' }}

0 commit comments

Comments
 (0)