Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion .github/workflows/arstack-studio-qt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: ARStack Studio Qt

on:
push:
branches: [main]
paths:
- 'apps/arstack_studio/**'
- 'include/ariec61850/sampled_values/**'
Expand All @@ -21,7 +22,7 @@ permissions:

concurrency:
group: arstack-studio-qt-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
windows-launcher-parse:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/arstack-studio-rc2-policy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
- 'docs/SMV_STUDIO_RC2_ACCEPTANCE.md'
- '.github/workflows/arstack-studio-rc2-policy.yml'
push:
branches: [main]
paths:
- 'apps/arstack_studio/src/Rc2Acceptance.cpp'
- 'apps/arstack_studio/rc2/**'
Expand All @@ -21,7 +22,7 @@ permissions:

concurrency:
group: arstack-studio-rc2-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
windows-policy:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/arstack-studio-windows-lifecycle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: ARStack Studio Windows Lifecycle

on:
push:
branches: [main]
paths:
- 'apps/arstack_studio/**'
- '.github/workflows/arstack-studio-windows-lifecycle.yml'
Expand All @@ -15,7 +16,7 @@ permissions:

concurrency:
group: arstack-studio-windows-lifecycle-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
close-exit-reopen:
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/brcb-hard-profile-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,26 @@ on:
branches:
- main
pull_request:
paths:
- 'embedded/brcb_hard_profile/**'
- 'embedded/brcb_*.cpp'
- 'embedded/mms_brcb_*.cpp'
- 'include/ariec61850/mms/**'
- 'src/mms/**'
- 'include/ariec61850/control/**'
- 'src/control/**'
- 'include/ariec61850/asn1/**'
- 'src/asn1/**'
- 'tests/fixtures/scl/**'
- '.github/workflows/brcb-hard-profile-ci.yml'

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
brcb-hard-profile:
name: BRCB Hard / ${{ matrix.compiler }}
Expand Down
26 changes: 26 additions & 0 deletions .github/workflows/ci-routing-policy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: CI Routing Policy
on:
pull_request:
paths:
- '.github/workflows/**'
- 'scripts/check_ci_trigger_policy.py'
- 'docs/CI_WORKFLOW_ROUTING.md'
push:
branches: [main]
paths:
- '.github/workflows/**'
- 'scripts/check_ci_trigger_policy.py'
- 'docs/CI_WORKFLOW_ROUTING.md'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
routing-contract:
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- name: Verify scoped PR workflow routing
run: python3 scripts/check_ci_trigger_policy.py
17 changes: 17 additions & 0 deletions .github/workflows/control-interop-harness-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,28 @@ on:
branches:
- "agent/phase-4d-c5-control-interoperability"
pull_request:
paths:
- 'tools/control_interop_probe/**'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include the top-level control probe sources in PR paths

For PRs that modify tools/control_interop_probe.cpp, tools/control_inventory_probe.cpp, or tools/control_ctlmodel_probe.cpp, this new filter does not trigger because tools/control_interop_probe/** covers the directory, while all three sources are sibling files under tools/; the workflow's CMake project explicitly compiles them and runs their offline self-tests. Add those source paths so direct harness changes still receive the specialized GCC/Clang/MSVC validation that this filter replaced.

AGENTS.md reference: AGENTS.md:L249-L263

Useful? React with 👍 / 👎.

- 'include/ariec61850/control/**'
- 'src/control/**'
- 'include/ariec61850/mms/**'
- 'src/mms/**'
- 'include/ariec61850/asn1/**'
- 'src/asn1/**'
- 'include/ariec61850/osi/**'
- 'src/osi/**'
- 'include/ariec61850/acse/**'
- 'src/acse/**'
- '.github/workflows/control-interop-harness-ci.yml'
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
control-interop:
name: Control Interop Harness / ${{ matrix.compiler }}
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/cpp-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,26 @@ on:
push:
branches: [main]
pull_request:
paths:
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/**'
- 'tests/**'
- 'tools/**'
- 'scripts/**'
- 'fuzz/**'
- 'embedded/**'
- '.github/workflows/cpp-ci.yml'
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
linux:
name: Linux / ${{ matrix.compiler }}
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/dynamic-rcb-trial-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,28 @@ on:
push:
branches: ["agent/phase-4d-d2-dynamic-rcb-live-trial"]
pull_request:
paths:
- 'tools/dynamic_rcb_trial/**'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include the top-level RCB trial sources in PR paths

For PRs changing tools/dynamic_rcb_trial.cpp or tools/static_rcb_trial.cpp, the workflow is now skipped because tools/dynamic_rcb_trial/** only covers the subdirectory, even though that subdirectory's CMake project builds both sibling source files and exercises their CLI contracts. Add the two top-level source paths so changes to the trial executables continue to run this dedicated cross-platform matrix.

AGENTS.md reference: AGENTS.md:L249-L263

Useful? React with 👍 / 👎.

- 'include/ariec61850/mms/**'
- 'src/mms/**'
- 'include/ariec61850/control/**'
- 'src/control/**'
- 'include/ariec61850/asn1/**'
- 'src/asn1/**'
- 'include/ariec61850/osi/**'
- 'src/osi/**'
- 'include/ariec61850/acse/**'
- 'src/acse/**'
- '.github/workflows/dynamic-rcb-trial-ci.yml'
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
build:
strategy:
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/embedded-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,35 @@ on:
branches:
- main
pull_request:
paths:
- 'embedded/**'
- 'include/ariec61850/mms/**'
- 'src/mms/**'
- 'include/ariec61850/control/**'
- 'src/control/**'
- 'include/ariec61850/asn1/**'
- 'src/asn1/**'
- 'include/ariec61850/acse/**'
- 'src/acse/**'
- 'include/ariec61850/osi/**'
- 'src/osi/**'
- 'include/ariec61850/goose/**'
- 'src/goose/**'
- 'include/ariec61850/sampled_values/**'
- 'src/sampled_values/**'
- 'include/ariec61850/ethernet/**'
- 'src/ethernet/**'
- 'include/ariec61850/time_sync/**'
- 'src/time_sync/**'
- '.github/workflows/embedded-ci.yml'

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
embedded-host-sim:
name: Embedded host-sim / ${{ matrix.compiler }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/esp32p4-ptp-lab.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ permissions:
contents: read

concurrency:
group: esp32p4-ptp-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
group: esp32p4-ptp-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
build-esp32p4-ptp:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/esp32p4-smv-injector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ permissions:
contents: read

concurrency:
group: esp32p4-smv-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
group: esp32p4-smv-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
Comment on lines +38 to +39

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep reusable firmware runs in a distinct concurrency group

When a PR changes ESP32-P4 firmware, both this standalone workflow and arstack-studio-release.yml trigger, with the latter invoking this file through workflow_call; both instances now resolve this group to the same repository-and-head value with cancellation enabled. GitHub documents that concurrency names are repository-wide and matching groups cancel the other run, so scheduling can cancel either the standalone firmware check or the release workflow's required firmware job, which then prevents its dependent Windows package from running. Include a caller/workflow discriminator while retaining branch deduplication. GitHub concurrency documentation

AGENTS.md reference: AGENTS.md:L249-L263

Useful? React with 👍 / 👎.


env:
ARSTACK_FIRMWARE_VERSION: '0.1.1'
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/ied-simulator-qt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: IED Simulator Qt

on:
push:
branches: [main]
paths:
- 'apps/ied_simulator/**'
- 'include/ariec61850/scl/**'
Expand Down Expand Up @@ -41,6 +42,10 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
build-and-smoke:
runs-on: ubuntu-24.04
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/ied-simulator-release-hardening.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
name: IED Simulator Release Hardening

on:
workflow_dispatch:
push:
branches: [main]
paths:
- 'apps/ied_simulator/**'
- 'assets/**'
- '.github/workflows/ied-simulator-release-hardening.yml'
pull_request:
paths:
- 'apps/ied_simulator/**'
- 'apps/ied_simulator/packaging/**'
- 'apps/ied_simulator/CMakeLists.txt'
- 'apps/ied_simulator/src/main.cpp'
- 'assets/**'
- '.github/workflows/ied-simulator-release-hardening.yml'

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
linux-release-soak:
runs-on: ubuntu-24.04
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/ptp-core-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: PTP Core CI

on:
push:
branches: [main]
paths:
- 'include/ariec61850/time_sync/**'
- 'src/time_sync/**'
Expand Down Expand Up @@ -39,6 +40,10 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
portable-ptp:
strategy:
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/scl-assisted-connect-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: SCL-Assisted Connect CI

on:
push:
branches: [main]
paths:
- 'include/ariec61850/mms/scl_assisted_connect.hpp'
- 'include/ariec61850/mms/scl_association.hpp'
Expand Down Expand Up @@ -37,8 +38,8 @@ on:
- '.github/workflows/scl-assisted-connect-ci.yml'

concurrency:
group: scl-assisted-connect-${{ github.ref }}
cancel-in-progress: true
group: scl-assisted-connect-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
linux-profile:
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/scl-assisted-workbench-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: SCL-Assisted Workbench CI

on:
push:
branches: [main]
paths:
- 'apps/ied_simulator/src/MmsClientController.*'
- 'apps/ied_simulator/src/MmsLiveTreeModel.*'
Expand Down Expand Up @@ -38,8 +39,8 @@ permissions:
contents: read

concurrency:
group: scl-assisted-workbench-${{ github.ref }}
cancel-in-progress: true
group: scl-assisted-workbench-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
product-path:
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/security-evidence.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,24 @@ on:
push:
branches: [main]
pull_request:
paths:
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/**'
- 'tests/**'
- 'tools/**'
- 'fuzz/**'
- '.github/workflows/security-evidence.yml'
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
sanitizers:
name: Clang / ASan + UBSan
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/smv-injector-gui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: SMV Injector GUI

on:
push:
branches: [main]
paths:
- 'apps/smv_injector_gui/**'
- 'tools/smv_profile_inspect.cpp'
Expand All @@ -27,6 +28,10 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
profile-bridge-smoke:
runs-on: ubuntu-latest
Expand Down
Loading
Loading