From fb4fe50c72d93aef968f2052333923454ba8b090 Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Thu, 29 Oct 2026 15:07:25 +0200 Subject: [PATCH 1/2] ci: reduce duplicate runs and runner contention Run feature validation once per pull request, supersede obsolete PR runs and check documentation within the Linux contract job. Keep native coverage and serialize the existing CodeQL language matrix. Closes #28 --- .github/workflows/ci.yml | 16 ++++++++-------- .github/workflows/codeql.yml | 6 +++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f83f689..0a1d0c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,11 @@ name: CI on: push: + branches: [main] pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} permissions: contents: read jobs: @@ -10,6 +14,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 + - name: Check documentation links + uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2 + with: + args: --offline --include-fragments --no-progress README.md CONTRIBUTING.md SECURITY.md docs/contracts.md docs/storage.md docs/inventory.md - uses: actions/setup-node@v7 with: node-version: 24 @@ -47,11 +55,3 @@ jobs: - run: cargo clippy --locked -p omloom-observe --all-targets -- -D warnings - run: cargo nextest run --locked -p omloom-observe - run: cargo clean - docs: - name: Documentation - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v7 - - uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2 - with: - args: --offline --include-fragments --no-progress README.md CONTRIBUTING.md SECURITY.md docs/contracts.md docs/storage.md docs/inventory.md diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e9cc8e8..2c7d14a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -4,11 +4,14 @@ on: push: branches: [main] pull_request: - branches: [main] workflow_dispatch: schedule: - cron: '27 3 * * 2' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + permissions: contents: read @@ -21,6 +24,7 @@ jobs: security-events: write strategy: fail-fast: false + max-parallel: 1 matrix: language: [actions, javascript-typescript, rust] steps: From 7664b9d305474f6345775ca808fc9ac882ecc0c5 Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Thu, 29 Oct 2026 16:18:55 +0200 Subject: [PATCH 2/2] ci: pin actions and retain Rust stable --- .github/workflows/ci.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a1d0c0..9fb6a29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,16 +13,19 @@ jobs: name: Contracts, storage and inventory (Rust, Vue, Chromium) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false - name: Check documentation links uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2 with: args: --offline --include-fragments --no-progress README.md CONTRIBUTING.md SECURITY.md docs/contracts.md docs/storage.md docs/inventory.md - - uses: actions/setup-node@v7 + - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: node-version: 24 - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec # stable with: + toolchain: stable components: rustfmt, clippy targets: thumbv7em-none-eabihf - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 @@ -42,9 +45,12 @@ jobs: os: [macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v7 - - uses: dtolnay/rust-toolchain@stable + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec # stable with: + toolchain: stable components: rustfmt, clippy - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 with: