Skip to content

Commit 81dadd0

Browse files
authored
Merge branch 'main' into prover/fix/stateroot-binding
2 parents e560a33 + f4c5f71 commit 81dadd0

54 files changed

Lines changed: 5127 additions & 2040 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/run-git-cliff-commands/action.yml

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ inputs:
1919
2020
Blank/whitespace-only lines are ignored; leading/trailing whitespace on each line is trimmed.
2121
required: true
22-
cliff-config:
23-
description: "Path to the cliff.toml config file"
22+
scopes:
23+
description: "Regex alternation of conventional-commit scopes to gate on, injected into the shared template (e.g. 'coordinator' or 'linea-besu|tracer|sequencer|deps|misc')"
24+
required: true
25+
cliff-template:
26+
description: "Path to the shared git-cliff template containing the @@SCOPES@@ placeholder"
2427
required: false
25-
default: "cliff.toml"
28+
default: "cliff.template.toml"
2629
release_tag_suffix:
2730
description: "Custom release tag suffix, i.e. release tag would be releases/[component]/v[semver]-[suffix]"
2831
required: false
@@ -70,13 +73,35 @@ runs:
7073
echo '__PATHS_EOF__'
7174
} >> "$GITHUB_OUTPUT"
7275
76+
# Render the shared cliff template into a temp config with the caller's
77+
# scopes injected into the @@SCOPES@@ placeholder. git-cliff can't inject
78+
# scopes into commit_parsers itself, so we substitute at run time and point
79+
# every git cliff invocation below at the rendered file.
80+
- name: Render git-cliff config with injected scopes
81+
id: render
82+
shell: bash
83+
env:
84+
SCOPES: ${{ inputs.scopes }}
85+
TEMPLATE: ${{ inputs.cliff-template }}
86+
run: |
87+
set -euo pipefail
88+
if [ -z "${SCOPES}" ]; then
89+
echo "scopes input must be non-empty" >&2
90+
exit 1
91+
fi
92+
rendered="${RUNNER_TEMP:-/tmp}/cliff.rendered.toml"
93+
# '#' delimiter is safe: neither the placeholder nor scope tokens (which
94+
# may contain '|') contain '#'.
95+
sed "s#@@SCOPES@@#${SCOPES}#g" "${TEMPLATE}" > "${rendered}"
96+
echo "config=${rendered}" >> "$GITHUB_OUTPUT"
97+
7398
# Compute the next release version
7499
- name: Compute next ${{ inputs.component-name }} version (semver)
75100
id: version
76101
shell: bash
77102
env:
78103
COMPONENT: ${{ inputs.component-name }}
79-
CLIFF_CONFIG: ${{ inputs.cliff-config }}
104+
CLIFF_CONFIG: ${{ steps.render.outputs.config }}
80105
RELEASE_TAG_SUFFIX: ${{ inputs.release_tag_suffix }}
81106
run: |
82107
set -euo pipefail
@@ -147,7 +172,7 @@ runs:
147172
if: steps.version.outputs.changed == 'true'
148173
env:
149174
COMPONENT: ${{ inputs.component-name }}
150-
CLIFF_CONFIG: ${{ inputs.cliff-config }}
175+
CLIFF_CONFIG: ${{ steps.render.outputs.config }}
151176
TAG_CONFIG: ${{ inputs.generate-changelog-with-next-tag-version == 'true' && format(' --tag {0}', steps.version.outputs.version) || '' }}
152177
shell: bash
153178
run: |
@@ -171,7 +196,7 @@ runs:
171196
env:
172197
COMPONENT: ${{ inputs.component-name }}
173198
FOLDER_NAME: ${{ inputs.folder-name }}
174-
CLIFF_CONFIG: ${{ inputs.cliff-config }}
199+
CLIFF_CONFIG: ${{ steps.render.outputs.config }}
175200
TAG_CONFIG: ${{ inputs.generate-changelog-with-next-tag-version == 'true' && format(' --tag {0}', steps.version.outputs.version) || '' }}
176201
TARGET_REF: ${{ github.head_ref || github.ref_name }}
177202
shell: bash

.github/workflows/component-changelog-upload.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,24 +67,32 @@ jobs:
6767
matrix:
6868
component: [ coordinator, maru, prover, postman, tx-exclusion-api, linea-besu-package, linea ]
6969
include:
70+
# Scope-and-path gated: cliff-<component>.toml keeps only commits
71+
# scoped to that component, AND include-path restricts to its paths.
7072
- component: coordinator
7173
folder-name: coordinator
74+
scopes: coordinator|deps|misc
7275
include-path: coordinator/**
7376
- component: maru
7477
folder-name: maru
78+
scopes: maru|deps|misc
7579
include-path: maru/**
7680
- component: prover
7781
folder-name: prover
82+
scopes: prover|deps|misc
7883
include-path: prover/**
7984
- component: postman
8085
folder-name: postman
86+
scopes: postman|deps|misc
8187
include-path: postman/**
8288
- component: tx-exclusion-api
8389
folder-name: transaction-exclusion-api
90+
scopes: tx-exclusion-api|deps|misc
8491
include-path: transaction-exclusion-api/**
8592
- component: linea-besu-package
8693
folder-name: linea-besu/package
8794
artifact-name: linea-besu-package
95+
scopes: linea-besu|tracer|sequencer|deps|misc
8896
include-path: |
8997
tracer/**
9098
tracer-constraints/**
@@ -95,8 +103,10 @@ jobs:
95103
- component: linea
96104
folder-name: .
97105
artifact-name: linea
106+
scopes: coordinator|linea-besu|tracer|sequencer|maru|prover|postman|tx-exclusion-api|deps|misc
98107
include-path: |
99108
coordinator/**
109+
maru/**
100110
postman/**
101111
prover/**
102112
transaction-exclusion-api/**
@@ -134,6 +144,7 @@ jobs:
134144
component-name: ${{ matrix.component }}
135145
folder-name: ${{ matrix.folder-name }}
136146
include-path: ${{ matrix.include-path }}
147+
scopes: ${{ matrix.scopes }}
137148
prepend-changelog: 'true'
138149

139150
- name: Upload CHANGELOG.md artifact

.github/workflows/coordinator-release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ jobs:
3535
with:
3636
component-name: coordinator
3737
folder-name: coordinator
38+
# Scope-and-path gated: the shared cliff.template.toml (scope `coordinator`) keeps only `coordinator`-scoped
39+
# commits, AND include-path restricts to the coordinator paths.
40+
scopes: coordinator|deps|misc
3841
include-path: coordinator/**
3942
image_tag_suffix: ${{ inputs.image_tag_suffix }}
4043
release_tag_suffix: ${{ inputs.release_tag_suffix }}

.github/workflows/linea-besu-release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ jobs:
5151
with:
5252
# Release tag uses 'linea-besu-package' (e.g. releases/linea-besu-package/v1.2.3)
5353
component-name: linea-besu-package
54+
# Scope-and-path gated: the shared cliff.template.toml (scopes `linea-besu|tracer|sequencer|deps|misc`)
55+
# keeps only commits scoped to `linea-besu`, AND include-path restricts to the linea-besu package paths;
56+
# a commit must satisfy both to drive the version bump and changelog.
57+
scopes: linea-besu|tracer|sequencer|deps|misc
5458
include-path: |
5559
tracer/**
5660
tracer-constraints/**

.github/workflows/linea-milestone-release.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ jobs:
186186
with:
187187
component-name: coordinator
188188
folder-name: coordinator
189+
scopes: coordinator|deps|misc
189190
include-path: coordinator/**
190191
image_tag_suffix: ${{ inputs.image_tag_suffix }}
191192
release_tag_suffix: ${{ inputs.release_tag_suffix }} # no release tag suffix should be allowed for milestone component release, only for dry run cases
@@ -205,6 +206,7 @@ jobs:
205206
with:
206207
component-name: prover
207208
folder-name: prover
209+
scopes: prover|deps|misc
208210
include-path: prover/**
209211
image_tag_suffix: ${{ inputs.image_tag_suffix }}
210212
release_tag_suffix: ${{ inputs.release_tag_suffix }} # no release tag suffix should be allowed for milestone component release, only for dry run cases
@@ -224,6 +226,7 @@ jobs:
224226
with:
225227
component-name: postman
226228
folder-name: postman
229+
scopes: postman|deps|misc
227230
include-path: postman/**
228231
image_tag_suffix: ${{ inputs.image_tag_suffix }}
229232
release_tag_suffix: ${{ inputs.release_tag_suffix }} # no release tag suffix should be allowed for milestone component release, only for dry run cases
@@ -243,6 +246,7 @@ jobs:
243246
with:
244247
component-name: tx-exclusion-api
245248
folder-name: transaction-exclusion-api
249+
scopes: tx-exclusion-api|deps|misc
246250
include-path: transaction-exclusion-api/**
247251
image_tag_suffix: ${{ inputs.image_tag_suffix }}
248252
release_tag_suffix: ${{ inputs.release_tag_suffix }} # non-empty release_tag_suffix can be only for non-main milestone release (e.g. dry run release)
@@ -262,6 +266,7 @@ jobs:
262266
with:
263267
component-name: maru
264268
folder-name: maru
269+
scopes: maru|deps|misc
265270
include-path: maru/**
266271
image_tag_suffix: ${{ inputs.image_tag_suffix }}
267272
release_tag_suffix: ${{ inputs.release_tag_suffix }} # no release tag suffix should be allowed for milestone component release, only for dry run cases

.github/workflows/maru-release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ jobs:
3535
with:
3636
component-name: maru
3737
folder-name: maru
38+
# Scope-and-path gated: the shared cliff.template.toml (scope `maru`) keeps only `maru`-scoped commits,
39+
# AND include-path restricts to the maru paths.
40+
scopes: maru|deps|misc
3841
include-path: maru/**
3942
image_tag_suffix: ${{ inputs.image_tag_suffix }}
4043
release_tag_suffix: ${{ inputs.release_tag_suffix }}

.github/workflows/postman-release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ jobs:
3535
with:
3636
component-name: postman
3737
folder-name: postman
38+
# Scope-and-path gated: the shared cliff.template.toml (scope `postman`) keeps only `postman`-scoped
39+
# commits, AND include-path restricts to the postman paths.
40+
scopes: postman|deps|misc
3841
include-path: postman/**
3942
image_tag_suffix: ${{ inputs.image_tag_suffix }}
4043
release_tag_suffix: ${{ inputs.release_tag_suffix }}

.github/workflows/prover-release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ jobs:
3636
with:
3737
component-name: prover
3838
folder-name: prover
39+
# Scope-and-path gated: the shared cliff.template.toml (scope `prover`) keeps only `prover`-scoped
40+
# commits, AND include-path restricts to the prover paths.
41+
scopes: prover|deps|misc
3942
include-path: prover/**
4043
image_tag_suffix: ${{ inputs.image_tag_suffix }}
4144
release_tag_suffix: ${{ inputs.release_tag_suffix }}

.github/workflows/reusable-component-gh-release.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ on:
2121
description: 'newline-separated string to represent the "git-cliff --include-path filter"'
2222
required: true
2323
type: string
24+
scopes:
25+
description: "Regex alternation of conventional-commit scopes to gate on (e.g. 'coordinator' or 'linea-besu|tracer|sequencer|deps|misc')"
26+
required: true
27+
type: string
2428
image_tag_suffix:
2529
description: 'Custom docker image tag suffix, i.e. docker image tag would be [semver]-[YYYYMMDD]-[commit]-[suffix], if not given, would be [semver]-[YYYYMMDD]-[commit]'
2630
required: false
@@ -66,6 +70,7 @@ jobs:
6670
component-name: ${{ inputs.component-name }}
6771
folder-name: ${{ inputs.folder-name }}
6872
include-path: ${{ inputs.include-path }}
73+
scopes: ${{ inputs.scopes }}
6974
release_tag_suffix: ${{ inputs.release_tag_suffix }}
7075
upload_changelog: ${{ inputs.upload_changelog }}
7176
secrets: inherit

.github/workflows/reusable-component-release-metadata.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ on:
1010
include-path:
1111
description: 'newline-separated string to represent the "git-cliff --include-path filter"'
1212
type: string
13+
scopes:
14+
description: "Regex alternation of conventional-commit scopes to gate on (e.g. 'coordinator' or 'linea-besu|tracer|sequencer|deps|misc')"
15+
required: true
16+
type: string
1317
release_tag_suffix:
1418
description: "Custom release tag suffix, i.e. release tag would be releases/[component]/v[semver]-[suffix]"
1519
required: false
@@ -57,6 +61,7 @@ jobs:
5761
with:
5862
component-name: ${{ inputs.component-name }}
5963
include-path: ${{ inputs.include-path }}
64+
scopes: ${{ inputs.scopes }}
6065
release_tag_suffix: ${{ inputs.release_tag_suffix }}
6166
generate-changelog-with-next-tag-version: 'true'
6267

0 commit comments

Comments
 (0)