Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
47 changes: 47 additions & 0 deletions .github/package-filters/js-packages-direct.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
'@dashevo/wallet-utils-contract':
- packages/wallet-utils-contract/**

'@dashevo/token-history-contract':
- packages/token-history-contract/**

'@dashevo/dashpay-contract':
- packages/dashpay-contract/**

'@dashevo/masternode-reward-shares-contract':
- packages/masternode-reward-shares-contract/**

'@dashevo/withdrawals-contract':
- packages/withdrawals-contract/**

'@dashevo/dpns-contract':
- packages/dpns-contract/**

'@dashevo/grpc-common':
- packages/js-grpc-common/**

'@dashevo/wasm-dpp':
- packages/wasm-dpp/**

'@dashevo/dapi-grpc':
- packages/dapi-grpc/**

'@dashevo/dash-spv':
- packages/dash-spv/**

'@dashevo/dapi':
- packages/dapi/**

'@dashevo/dapi-client':
- packages/js-dapi-client/**

'@dashevo/wallet-lib':
- packages/wallet-lib/**

dash:
- packages/js-dash-sdk/**

dashmate:
- packages/dashmate/**

'@dashevo/platform-test-suite':
- packages/platform-test-suite/**
44 changes: 44 additions & 0 deletions .github/package-filters/rs-packages-direct.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
wallet-utils-contract:
- packages/wallet-utils-contract/**

token-history-contract:
- packages/token-history-contract/**

dashpay-contract:
- packages/dashpay-contract/**

masternode-reward-shares-contract:
- packages/masternode-reward-shares-contract/**

withdrawals-contract:
- packages/withdrawals-contract/**

dpns-contract:
- packages/dpns-contract/**

json-schema-compatibility-validator:
- packages/rs-json-schema-compatibility-validator/**

dpp:
- packages/rs-dpp/**

wasm-dpp:
- packages/wasm-dpp/**

drive:
- packages/rs-drive/**

drive-abci:
- packages/rs-drive-abci/**

dapi-grpc:
- packages/dapi-grpc/**

rs-dapi-client:
- packages/rs-dapi-client/**

dash-sdk:
- packages/rs-sdk/**

rs-sdk-ffi:
- packages/rs-sdk-ffi/**
5 changes: 5 additions & 0 deletions .github/workflows/tests-js-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ on:
description: The package name to run tests for
type: string
required: true
direct-packages:
description: JSON array of JS packages that changed directly
type: string
default: '[]'
skip-tests:
description: Skip running tests
type: boolean
Expand All @@ -19,6 +23,7 @@ jobs:
name: Linting
runs-on: ubuntu-24.04
timeout-minutes: 5
if: contains(fromJSON(inputs.direct-packages), inputs.package)
permissions:
id-token: write
contents: read
Expand Down
14 changes: 9 additions & 5 deletions .github/workflows/tests-rs-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,16 @@ on:
description: If true, try to build each individual feature for this crate
type: boolean
default: false
direct-packages:
description: JSON array of packages that changed directly (not via deps)
type: string
default: '[]'

jobs:
lint:
name: Linting
runs-on: ubuntu-24.04
if: contains(fromJSON(inputs.direct-packages), inputs.package)
permissions:
id-token: write
contents: read
Expand Down Expand Up @@ -51,6 +56,7 @@ jobs:
formatting:
name: Formatting
runs-on: ubuntu-24.04
if: contains(fromJSON(inputs.direct-packages), inputs.package)
timeout-minutes: 5
steps:
- name: Check out repo
Expand All @@ -71,6 +77,7 @@ jobs:
unused_deps:
name: Unused dependencies
runs-on: ubuntu-24.04
if: contains(fromJSON(inputs.direct-packages), inputs.package)
permissions:
id-token: write
contents: read
Expand Down Expand Up @@ -113,10 +120,7 @@ jobs:
name: Detect immutable structure changes
timeout-minutes: 10
runs-on: ubuntu-24.04
# FIXME: as we use `gh pr view` below, this check can only
# run on pull requests. We should find a way to run it
# when manual triggers are used.
if: github.event_name == 'pull_request'
if: github.event_name == 'pull_request' && contains(fromJSON(inputs.direct-packages), inputs.package)
steps:
- name: Checkout base commit
uses: actions/checkout@v4
Expand Down Expand Up @@ -207,7 +211,7 @@ jobs:
name: Check each feature
runs-on: ubuntu-24.04
timeout-minutes: 15
if: ${{ inputs.check-each-feature }}
if: ${{ inputs.check-each-feature && contains(fromJSON(inputs.direct-packages), inputs.package) }}
steps:
- name: Check out repo
uses: actions/checkout@v4
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ jobs:
runs-on: ubuntu-24.04
outputs:
js-packages: ${{ steps.filter-js.outputs.changes }}
js-packages-direct: ${{ steps.filter-js-direct.outputs.changes }}
rs-packages: ${{ steps.filter-rs.outputs.changes }}
rs-packages-direct: ${{ steps.filter-rs-direct.outputs.changes }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -37,11 +39,21 @@ jobs:
with:
filters: .github/package-filters/js-packages.yml

- uses: dorny/paths-filter@v2
id: filter-js-direct
with:
filters: .github/package-filters/js-packages-direct.yml

- uses: dorny/paths-filter@v2
id: filter-rs
with:
filters: .github/package-filters/rs-packages.yml

- uses: dorny/paths-filter@v2
id: filter-rs-direct
with:
filters: .github/package-filters/rs-packages-direct.yml

build-js:
name: Build JS packages
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' || !github.event.pull_request.draft }}
Expand Down Expand Up @@ -84,6 +96,7 @@ jobs:
with:
package: ${{ matrix.rs-package }}
check-each-feature: ${{ contains(fromJSON('["dash-sdk","rs-dapi-client","dapi-grpc","dpp","drive-abci"]'), matrix.rs-package) }}
direct-packages: ${{ needs.changes.outputs.rs-packages-direct }}

rs-crates-security:
name: Rust crates security audit
Expand Down Expand Up @@ -122,6 +135,7 @@ jobs:
package: ${{ matrix.js-package }}
test-command: ${{ matrix.js-package == 'dashmate' && 'test:unit' || 'test' }}
skip-tests: ${{ contains(matrix.js-package, 'platform-test-suite') }}
direct-packages: ${{ needs.changes.outputs.js-packages-direct }}

js-deps-versions:
name: JS dependency versions check
Expand Down
Loading