diff --git a/.github/workflows/ci-expanded.yml b/.github/workflows/ci-expanded.yml index 77460359..6a8611bb 100644 --- a/.github/workflows/ci-expanded.yml +++ b/.github/workflows/ci-expanded.yml @@ -7,15 +7,36 @@ name: Expanded Continuous Integration -on: [ workflow_dispatch ] +on: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.repository_owner == 'libbitcoin' && (github.event.pull_request.number || github.run_id) || github.ref }} cancel-in-progress: true jobs: + information: + runs-on: ubuntu-latest + + env: + CONCURRENCY_GROUP: ${{ github.workflow }}-${{ github.repository_owner == 'libbitcoin' && (github.event.pull_request.number || github.run_id) || github.ref }} + + steps: + - name: state + run: | + echo "group : $CONCURRENCY_GROUP" + echo "owner : ${{ github.repository_owner }}" + echo "pr : ${{ github.event.pull_request }}" + echo "pr # : ${{ github.event.pull_request.number }}" + echo "run_id : ${{ github.run_id }}" + echo "ref : ${{ github.ref }}" + echo "base_ref : ${{ github.base_ref }}" + echo "head_ref : ${{ github.head_ref }}" + gnu: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -404,6 +425,8 @@ jobs: fi - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -411,7 +434,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-system + + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -419,7 +452,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-database + + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -427,7 +470,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-network + + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -435,13 +488,23 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-node + + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 path: 'libbitcoin-server' repository: ${{ github.repository }} + - name: Prepare toolchain [linux] if: ${{ startsWith(matrix.image, 'ubuntu') }} shell: bash @@ -574,6 +637,8 @@ jobs: if-no-files-found: warn cmake: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -962,6 +1027,8 @@ jobs: fi - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -969,7 +1036,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-system + + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -977,7 +1054,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-database + + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -985,7 +1072,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-network + + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -993,13 +1090,23 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-node + + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 path: 'libbitcoin-server' repository: ${{ github.repository }} + - name: Prepare toolchain [linux] if: ${{ startsWith(matrix.image, 'ubuntu') }} shell: bash @@ -1132,6 +1239,8 @@ jobs: if-no-files-found: warn presets: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -1146,7 +1255,7 @@ jobs: package: "clang-19 clang++-19" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -1157,7 +1266,7 @@ jobs: package: "clang-19 clang++-19" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-shared" @@ -1168,7 +1277,7 @@ jobs: package: "clang-19 clang++-19" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-static" @@ -1179,7 +1288,7 @@ jobs: package: "clang-19 clang++-19" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-shared" @@ -1189,7 +1298,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -1199,7 +1308,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-shared" @@ -1209,7 +1318,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-static" @@ -1219,7 +1328,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-shared" @@ -1229,7 +1338,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -1239,7 +1348,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-shared" @@ -1249,7 +1358,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-static" @@ -1259,7 +1368,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-shared" @@ -1269,7 +1378,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -1279,7 +1388,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-shared" @@ -1289,7 +1398,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-static" @@ -1299,7 +1408,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-shared" @@ -1309,7 +1418,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -1319,7 +1428,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-shared" @@ -1329,7 +1438,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-static" @@ -1339,7 +1448,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-shared" @@ -1350,7 +1459,7 @@ jobs: package: "g++-15 gcc-15" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -1361,7 +1470,7 @@ jobs: package: "g++-15 gcc-15" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-shared" @@ -1372,7 +1481,7 @@ jobs: package: "g++-15 gcc-15" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-static" @@ -1383,7 +1492,7 @@ jobs: package: "g++-15 gcc-15" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-shared" @@ -1394,7 +1503,7 @@ jobs: package: "g++-16 gcc-16" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -1405,7 +1514,7 @@ jobs: package: "g++-16 gcc-16" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-shared" @@ -1416,7 +1525,7 @@ jobs: package: "g++-16 gcc-16" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-release-static" @@ -1427,7 +1536,7 @@ jobs: package: "g++-16 gcc-16" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" runs-on: ${{ matrix.image }} @@ -1448,6 +1557,8 @@ jobs: fi - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1455,7 +1566,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-system + + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1463,7 +1584,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-database + + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1471,7 +1602,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-network + + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1479,13 +1620,23 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-node + + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 path: 'libbitcoin-server' repository: ${{ github.repository }} + - name: Prepare toolchain [linux] if: ${{ startsWith(matrix.image, 'ubuntu') }} shell: bash @@ -1613,6 +1764,8 @@ jobs: if-no-files-found: warn msvc: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -1661,6 +1814,8 @@ jobs: msbuild-architecture: x64 - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1668,7 +1823,16 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-system -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1676,7 +1840,16 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-database -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1684,7 +1857,16 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-network -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -1692,7 +1874,15 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-node -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a248cac8..10413e00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,15 +7,39 @@ name: Continuous Integration -on: [ pull_request, push, workflow_dispatch ] +on: + pull_request: + types: [opened, synchronize, reopened, closed] + push: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.repository_owner == 'libbitcoin' && (github.event.pull_request.number || github.run_id) || github.ref }} cancel-in-progress: true jobs: + information: + runs-on: ubuntu-latest + + env: + CONCURRENCY_GROUP: ${{ github.workflow }}-${{ github.repository_owner == 'libbitcoin' && (github.event.pull_request.number || github.run_id) || github.ref }} + + steps: + - name: state + run: | + echo "group : $CONCURRENCY_GROUP" + echo "owner : ${{ github.repository_owner }}" + echo "pr : ${{ github.event.pull_request }}" + echo "pr # : ${{ github.event.pull_request.number }}" + echo "run_id : ${{ github.run_id }}" + echo "ref : ${{ github.ref }}" + echo "base_ref : ${{ github.base_ref }}" + echo "head_ref : ${{ github.head_ref }}" + gnu: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -97,6 +121,8 @@ jobs: fi - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -104,7 +130,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-system + + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -112,7 +148,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-database + + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -120,7 +166,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-network + + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -128,13 +184,23 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-node + + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 path: 'libbitcoin-server' repository: ${{ github.repository }} + - name: Prepare toolchain [linux] if: ${{ startsWith(matrix.image, 'ubuntu') }} shell: bash @@ -267,6 +333,8 @@ jobs: if-no-files-found: warn cmake: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -348,6 +416,8 @@ jobs: fi - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -355,7 +425,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-system + + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -363,7 +443,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-database + + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -371,7 +461,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-network + + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -379,13 +479,23 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-node + + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 path: 'libbitcoin-server' repository: ${{ github.repository }} + - name: Prepare toolchain [linux] if: ${{ startsWith(matrix.image, 'ubuntu') }} shell: bash @@ -518,6 +628,8 @@ jobs: if-no-files-found: warn presets: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -531,7 +643,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" - image: ubuntu-24.04 preset: "nix-gnu-debug-static" @@ -541,7 +653,7 @@ jobs: coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" - options: "" + options: "--build-skip-tests" runs-on: ${{ matrix.image }} @@ -562,6 +674,8 @@ jobs: fi - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -569,7 +683,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-system + + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -577,7 +701,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-database + + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -585,7 +719,17 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-network + + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -593,13 +737,23 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: bash + run: | + rm -rf ${{ github.workspace }}/libbitcoin-node + + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 path: 'libbitcoin-server' repository: ${{ github.repository }} + - name: Prepare toolchain [linux] if: ${{ startsWith(matrix.image, 'ubuntu') }} shell: bash @@ -727,6 +881,8 @@ jobs: if-no-files-found: warn msvc: + if: github.event_name != 'pull_request' || github.event.action != 'closed' + strategy: fail-fast: false @@ -763,6 +919,8 @@ jobs: msbuild-architecture: x64 - name: Checkout repository [libbitcoin-system] + id: checkout-libbitcoin-system + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -770,7 +928,16 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-system + - name: Checkout repository [libbitcoin-system] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-system.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-system -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-database] + id: checkout-libbitcoin-database + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -778,7 +945,16 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-database + - name: Checkout repository [libbitcoin-database] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-database.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-database -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-network] + id: checkout-libbitcoin-network + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -786,7 +962,16 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-network + - name: Checkout repository [libbitcoin-network] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-network.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-network -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-node] + id: checkout-libbitcoin-node + continue-on-error: true uses: actions/checkout@v6 with: fetch-depth: 1 @@ -794,7 +979,15 @@ jobs: ref: ${{ steps.get-branch.outputs.branch }} repository: ${{ github.repository_owner }}/libbitcoin-node + - name: Checkout repository [libbitcoin-node] cleanup on failure + continue-on-error: true + if: steps.checkout-libbitcoin-node.outcome == 'failure' + shell: powershell + run: | + Remove-Item -Path ${{ github.workspace }}\libbitcoin-node -Recurse -Force -ErrorAction SilentlyContinue + - name: Checkout repository [libbitcoin-server] + id: checkout-libbitcoin-server uses: actions/checkout@v6 with: fetch-depth: 1 diff --git a/.gitignore b/.gitignore index f8e691b4..c0f6145c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,11 @@ # python bytecode *.pyc +# store +*.bin +*.head +*.data + # gnu .deps Makefile