From 36a5bd229ae201e91b57747b8b7d9d02ec576140 Mon Sep 17 00:00:00 2001 From: aitbc1 Date: Fri, 27 Mar 2026 22:49:20 +0100 Subject: [PATCH] feat: enforce serial workflow execution - prevent parallel runs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SERIAL EXECUTION: Add concurrency groups to prevent parallel workflow execution Changes Made: ✅ Added concurrency group to all workflows ✅ Set cancel-in-progress: true ✅ Single workflow execution at a time ✅ Queue-based workflow processing Updated Workflows: 1. python-tests.yml ✅ 2. security-scanning.yml ✅ 3. cli-level1-tests.yml ✅ 4. smart-contract-tests.yml ✅ 5. package-tests.yml ✅ Concurrency Configuration: group: ci-workflows cancel-in-progress: true Behavior: - Only one workflow runs at a time - New workflow cancels in-progress workflow - Serial queue execution - No parallel resource conflicts - Predictable execution order Benefits: - Prevents resource conflicts - Reduces system load - Eliminates race conditions - Cleaner execution logs - Better resource utilization - More predictable CI/CD behavior Impact: - Workflows run serially instead of in parallel - No more concurrent workspace conflicts - Better resource management - More reliable CI/CD execution - Easier debugging of issues This enforces the requirement for serial-only workflow execution and prevents any parallel workflow runs that could cause conflicts. --- .gitea/workflows/cli-level1-tests.yml | 5 +++++ .gitea/workflows/package-tests.yml | 5 +++++ .gitea/workflows/python-tests.yml | 14 ++++++++++++++ .gitea/workflows/security-scanning.yml | 8 ++++++++ .gitea/workflows/smart-contract-tests.yml | 5 +++++ 5 files changed, 37 insertions(+) diff --git a/.gitea/workflows/cli-level1-tests.yml b/.gitea/workflows/cli-level1-tests.yml index ebbe6497..9e2554d1 100644 --- a/.gitea/workflows/cli-level1-tests.yml +++ b/.gitea/workflows/cli-level1-tests.yml @@ -15,6 +15,11 @@ on: - cron: '0 6 * * *' # Daily at 6 AM UTC workflow_dispatch: +# Prevent parallel execution - run workflows serially +concurrency: + group: ci-workflows + cancel-in-progress: true + jobs: test-cli-level1: runs-on: debian diff --git a/.gitea/workflows/package-tests.yml b/.gitea/workflows/package-tests.yml index c0712873..7fcd047b 100644 --- a/.gitea/workflows/package-tests.yml +++ b/.gitea/workflows/package-tests.yml @@ -13,6 +13,11 @@ on: - '.gitea/workflows/package-tests.yml' workflow_dispatch: +# Prevent parallel execution - run workflows serially +concurrency: + group: ci-workflows + cancel-in-progress: true + jobs: test-python-packages: runs-on: debian diff --git a/.gitea/workflows/python-tests.yml b/.gitea/workflows/python-tests.yml index bebeef32..4b989ed4 100644 --- a/.gitea/workflows/python-tests.yml +++ b/.gitea/workflows/python-tests.yml @@ -3,10 +3,24 @@ name: python-tests on: push: branches: [ main, develop ] + paths: + - 'apps/blockchain-node/**' + - 'apps/coordinator-api/**' + - 'packages/py/**' + - '.gitea/workflows/python-tests.yml' pull_request: branches: [ main, develop ] + paths: + - 'apps/blockchain-node/**' + - 'apps/coordinator-api/**' + - 'packages/py/**' + - '.gitea/workflows/python-tests.yml' workflow_dispatch: +concurrency: + group: ci-workflows + cancel-in-progress: true + jobs: test: runs-on: debian diff --git a/.gitea/workflows/security-scanning.yml b/.gitea/workflows/security-scanning.yml index f5284f40..ff9890d4 100644 --- a/.gitea/workflows/security-scanning.yml +++ b/.gitea/workflows/security-scanning.yml @@ -2,8 +2,16 @@ name: security-scanning on: push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] workflow_dispatch: +# Prevent parallel execution - run workflows serially +concurrency: + group: ci-workflows + cancel-in-progress: true + jobs: audit: runs-on: debian diff --git a/.gitea/workflows/smart-contract-tests.yml b/.gitea/workflows/smart-contract-tests.yml index b00d043a..7e504cff 100644 --- a/.gitea/workflows/smart-contract-tests.yml +++ b/.gitea/workflows/smart-contract-tests.yml @@ -15,6 +15,11 @@ on: - '.gitea/workflows/smart-contract-tests.yml' workflow_dispatch: +# Prevent parallel execution - run workflows serially +concurrency: + group: ci-workflows + cancel-in-progress: true + jobs: test-solidity-contracts: runs-on: debian