diff --git a/.github/workflows/pr-differences-mutants.yml b/.github/workflows/pr-differences-mutants.yml index 831d9156c1..3c0403c00f 100644 --- a/.github/workflows/pr-differences-mutants.yml +++ b/.github/workflows/pr-differences-mutants.yml @@ -23,8 +23,10 @@ jobs: runs-on: ubuntu-latest outputs: - run_big_packages: ${{ steps.check_packages_and_shards.outputs.run_big_packages }} - big_packages_with_shards: ${{ steps.check_packages_and_shards.outputs.big_packages_with_shards }} + run_stackslib: ${{ steps.check_packages_and_shards.outputs.run_stackslib }} + stackslib_with_shards: ${{ steps.check_packages_and_shards.outputs.stackslib_with_shards }} + run_stacks_node: ${{ steps.check_packages_and_shards.outputs.run_stacks_node }} + stacks_node_with_shards: ${{ steps.check_packages_and_shards.outputs.stacks_node_with_shards }} run_small_packages: ${{ steps.check_packages_and_shards.outputs.run_small_packages }} small_packages_with_shards: ${{ steps.check_packages_and_shards.outputs.small_packages_with_shards }} run_stacks_signer: ${{ steps.check_packages_and_shards.outputs.run_stacks_signer }} @@ -47,7 +49,7 @@ jobs: - name: Run mutants on diffs uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@feat/mutation-testing with: - package-dimension: "small" + package: "small" # Mutation testing - Execute on PR on small packages that have functions modified (run with strategy matrix shards) pr-differences-mutants-small-shards: @@ -69,15 +71,15 @@ jobs: uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@feat/mutation-testing with: shard: ${{ matrix.shard }} - package-dimension: "small" + package: "small" - # Mutation testing - Execute on PR on big packages that have functions modified (normal run, no shards) - pr-differences-mutants-big-normal: - name: Mutation Testing - Normal, Big + # Mutation testing - Execute on PR on stackslib package (normal run, no shards) + pr-differences-mutants-stackslib-normal: + name: Mutation Testing - Normal, Stackslib needs: check-big-packages-and-shards - if: ${{ needs.check-big-packages-and-shards.outputs.run_big_packages == 'true' && needs.check-big-packages-and-shards.outputs.big_packages_with_shards == 'false' }} + if: ${{ needs.check-big-packages-and-shards.outputs.run_stackslib == 'true' && needs.check-big-packages-and-shards.outputs.stackslib_with_shards == 'false' }} runs-on: ubuntu-latest @@ -88,15 +90,15 @@ jobs: RUST_BACKTRACE: full uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@feat/mutation-testing with: - package-dimension: "big" + package: "stackslib" - # Mutation testing - Execute on PR on big packages that have functions modified (run with strategy matrix shards) - pr-differences-mutants-big-shards: - name: Mutation Testing - Shards, Big + # Mutation testing - Execute on PR on stackslib package (run with strategy matrix shards) + pr-differences-mutants-stackslib-shards: + name: Mutation Testing - Shards, Stackslib needs: check-big-packages-and-shards - if: ${{ needs.check-big-packages-and-shards.outputs.run_big_packages == 'true' && needs.check-big-packages-and-shards.outputs.big_packages_with_shards == 'true' }} + if: ${{ needs.check-big-packages-and-shards.outputs.run_stackslib == 'true' && needs.check-big-packages-and-shards.outputs.stackslib_with_shards == 'true' }} runs-on: ubuntu-latest @@ -113,23 +115,67 @@ jobs: uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@feat/mutation-testing with: shard: ${{ matrix.shard }} - package-dimension: "big" + package: "stackslib" - # Mutation testing - Execute on PR on stacks-signer package if it has functions modified (normal run, no shards) - pr-differences-mutants-stacks-signer: - name: Mutation Testing - Normal, Signer + # Mutation testing - Execute on PR on stacks-node package (normal run, no shards) + pr-differences-mutants-stacks-node-normal: + name: Mutation Testing - Normal, Stacks Node needs: check-big-packages-and-shards - if: ${{ needs.check-big-packages-and-shards.outputs.run_stacks_signer == 'true' }} + if: ${{ needs.check-big-packages-and-shards.outputs.run_stacks_node == 'true' && needs.check-big-packages-and-shards.outputs.stacks_node_with_shards == 'false' }} + + runs-on: ubuntu-latest + + steps: + - name: Run Run mutants on diffs + env: + BITCOIND_TEST: 1 + RUST_BACKTRACE: full + uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@feat/mutation-testing + with: + package: "stacks-node" + + # Mutation testing - Execute on PR on stacks-node package (run with strategy matrix shards) + pr-differences-mutants-stacks-node-shards: + name: Mutation Testing - Shards, Stacks Node + + needs: check-big-packages-and-shards + + if: ${{ needs.check-big-packages-and-shards.outputs.run_stacks_node == 'true' && needs.check-big-packages-and-shards.outputs.stacks_node_with_shards == 'true' }} runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + shard: [0, 1, 2, 3] + steps: - name: Run mutants on diffs + env: + BITCOIND_TEST: 1 + RUST_BACKTRACE: full + uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@feat/mutation-testing + with: + shard: ${{ matrix.shard }} + package: "stacks-node" + + # Mutation testing - Execute on PR on stacks-signer package (normal run, no shards) + pr-differences-mutants-stacks-signer-normal: + name: Mutation Testing - Normal, Stacks Signer + + needs: check-big-packages-and-shards + + if: ${{ needs.check-big-packages-and-shards.outputs.run_stacks_signer == 'true' }} + + runs-on: ubuntu-latest + + steps: + - name: Run Run mutants on diffs uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@feat/mutation-testing with: - package-dimension: "stacks-signer" + package: "stacks-signer" # Output the mutants and fail the workflow if there are missed/timeout/unviable mutants output-mutants: @@ -137,22 +183,27 @@ jobs: runs-on: ubuntu-latest + if: always() needs: [ check-big-packages-and-shards, pr-differences-mutants-small-normal, pr-differences-mutants-small-shards, - pr-differences-mutants-big-normal, - pr-differences-mutants-big-shards, - pr-differences-mutants-stacks-signer, + pr-differences-mutants-stackslib-normal, + pr-differences-mutants-stackslib-shards, + pr-differences-mutants-stacks-node-normal, + pr-differences-mutants-stacks-node-shards, + pr-differences-mutants-stacks-signer-normal, ] steps: - name: Output Mutants uses: stacks-network/actions/stacks-core/mutation-testing/output-pr-mutants@feat/mutation-testing with: - big_packages: ${{ needs.check-big-packages-and-shards.outputs.run_big_packages }} - shards_for_big_packages: ${{ needs.check-big-packages-and-shards.outputs.big_packages_with_shards }} + stackslib_package: ${{ needs.check-big-packages-and-shards.outputs.run_stackslib }} + shards_for_stackslib_package: ${{ needs.check-big-packages-and-shards.outputs.stackslib_with_shards }} + stacks_node_package: ${{ needs.check-big-packages-and-shards.outputs.run_stacks_node }} + shards_for_stacks_node_package: ${{ needs.check-big-packages-and-shards.outputs.stacks_node_with_shards }} small_packages: ${{ needs.check-big-packages-and-shards.outputs.run_small_packages }} shards_for_small_packages: ${{ needs.check-big-packages-and-shards.outputs.small_packages_with_shards }} stacks_signer: ${{ needs.check-big-packages-and-shards.outputs.run_stacks_signer }}