From fed9797301cdf139bc8f228caaaf90e6da713187 Mon Sep 17 00:00:00 2001 From: Chloe Martin Date: Fri, 10 Jan 2025 09:08:38 -0500 Subject: [PATCH] Split the hierarchy :c --- .../{split_cluster.yml => _split_cluster.yml} | 0 .github/workflows/hierarchy.yml | 64 +--------------- .github/workflows/turbo_hierarchy.yml | 74 +++++++++++++++++++ 3 files changed, 76 insertions(+), 62 deletions(-) rename .github/workflows/{split_cluster.yml => _split_cluster.yml} (100%) create mode 100644 .github/workflows/turbo_hierarchy.yml diff --git a/.github/workflows/split_cluster.yml b/.github/workflows/_split_cluster.yml similarity index 100% rename from .github/workflows/split_cluster.yml rename to .github/workflows/_split_cluster.yml diff --git a/.github/workflows/hierarchy.yml b/.github/workflows/hierarchy.yml index b8c05918ddf..42ee5913e63 100644 --- a/.github/workflows/hierarchy.yml +++ b/.github/workflows/hierarchy.yml @@ -24,19 +24,8 @@ jobs: isDoc: ${{ steps.diff.outputs.isDoc }} isReleaseNotesEligible: ${{ steps.diff.outputs.isReleaseNotesEligible }} isExternalCrates: ${{ steps.diff.outputs.isExternalCrates }} - isWallet: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'iota-wallet')) }} - isExplorer: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'iota-explorer')) }} - isTypescriptSDK: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/iota-sdk')) }} - isAppsBackend: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'apps-backend')) }} - isAppsUiKit: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/apps-ui-kit')) }} - isWalletDashboard: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'wallet-dashboard')) }} - isGraphQlTransport: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/graphql-transport')) }} - isLedgerjs: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/ledgerjs-hw-app-iota')) }} steps: - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - - name: Detect Changes (turbo) - uses: "./.github/actions/turbo-diffs" - id: turbo - name: Detect Changes (diff) uses: "./.github/actions/diffs" id: diff @@ -77,12 +66,6 @@ jobs: if: (!cancelled() && needs.diff.outputs.isDoc == 'true') uses: ./.github/workflows/_docs_lint.yml - turborepo: - needs: - - dprint-format - - typos - uses: ./.github/workflows/_turborepo.yml - move-tests: needs: - diff @@ -119,49 +102,6 @@ jobs: (needs.diff.outputs.isRosetta == 'true' || needs.diff.outputs.isRust == 'true') uses: ./.github/workflows/_rosetta.yml - e2e: - if: (!cancelled() && !failure() && (!github.event.pull_request.draft || github.ref_name == 'develop')) - needs: - - diff - - dprint-format - - license-check - - typos - uses: ./.github/workflows/_e2e.yml - with: - isRust: ${{ needs.diff.outputs.isRust == 'true' }} - isWallet: ${{ needs.diff.outputs.isWallet == 'true' }} - isExplorer: ${{ needs.diff.outputs.isExplorer == 'true' }} - isAppsBackend: ${{ needs.diff.outputs.isAppsBackend == 'true' }} - isTypescriptSDK: ${{ needs.diff.outputs.isTypescriptSDK == 'true' }} - isGraphQlTransport: ${{ needs.diff.outputs.isGraphQlTransport == 'true' }} - - vercel-deploy: - if: (!cancelled() && !failure()) - needs: - - diff - - dprint-format - - license-check - - typos - uses: ./.github/workflows/_vercel_deploy.yml - secrets: inherit - with: - shouldDeployPreview: ${{ github.event_name == 'pull_request' && github.event.pull_request.draft == false }} - isExplorer: ${{ needs.diff.outputs.isExplorer == 'true' }} - isTypescriptSDK: ${{ needs.diff.outputs.isTypescriptSDK == 'true' }} - isAppsBackend: ${{ needs.diff.outputs.isAppsBackend == 'true' }} - isAppsUiKit: ${{ needs.diff.outputs.isAppsUiKit == 'true' }} - isWalletDashboard: ${{ needs.diff.outputs.isWalletDashboard == 'true' }} - - ledgernano: - if: (!cancelled() && !failure()) && needs.diff.outputs.isLedgerjs == 'true' && github.event.pull_request.draft == false - needs: - - diff - - dprint-format - - license-check - - typos - uses: ./.github/workflows/_ledgernano.yml - secrets: inherit - move-ide: if: (!cancelled() && !failure()) && needs.diff.outputs.isExternalCrates == 'true' && github.event.pull_request.draft == false needs: @@ -172,8 +112,8 @@ jobs: uses: ./.github/workflows/_move_ide.yml split-cluster: - if: (!cancelled() && !failure()) && needs.diff.isRust == 'true' + if: (!cancelled() && !failure()) && needs.diff.isRust == 'true' && github.event.pull_request.draft == false needs: - diff - rust - uses: ./.github/workflows/split_cluster.yml + uses: ./.github/workflows/_split_cluster.yml diff --git a/.github/workflows/turbo_hierarchy.yml b/.github/workflows/turbo_hierarchy.yml new file mode 100644 index 00000000000..6017487df4d --- /dev/null +++ b/.github/workflows/turbo_hierarchy.yml @@ -0,0 +1,74 @@ +name: Turborepo Hierarchy + +on: + push: + branches: + - "develop" + - "devnet" + - "testnet" + - "mainnet" + - "releases/iota-*-release" + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + +jobs: + diff: + runs-on: [self-hosted] + concurrency: + group: diff-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} + outputs: + isRust: ${{ steps.diff.outputs.isRust }} + isWallet: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'iota-wallet')) }} + isExplorer: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'iota-explorer')) }} + isTypescriptSDK: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/iota-sdk')) }} + isAppsBackend: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'apps-backend')) }} + isAppsUiKit: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/apps-ui-kit')) }} + isWalletDashboard: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), 'wallet-dashboard')) }} + isGraphQlTransport: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/graphql-transport')) }} + isLedgerjs: ${{ (steps.turbo.outputs.packages && contains(fromJson(steps.turbo.outputs.packages), '@iota/ledgerjs-hw-app-iota')) }} + steps: + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + - name: Detect Changes (turbo) + uses: "./.github/actions/turbo-diffs" + id: turbo + - name: Detect Changes (diff) + uses: "./.github/actions/diffs" + id: diff + + turborepo: + uses: ./.github/workflows/_turborepo.yml + + e2e: + if: (!cancelled() && !failure() && (!github.event.pull_request.draft || github.ref_name == 'develop')) + needs: + - diff + uses: ./.github/workflows/_e2e.yml + with: + isRust: ${{ needs.diff.outputs.isRust == 'true' }} + isWallet: ${{ needs.diff.outputs.isWallet == 'true' }} + isExplorer: ${{ needs.diff.outputs.isExplorer == 'true' }} + isAppsBackend: ${{ needs.diff.outputs.isAppsBackend == 'true' }} + isTypescriptSDK: ${{ needs.diff.outputs.isTypescriptSDK == 'true' }} + isGraphQlTransport: ${{ needs.diff.outputs.isGraphQlTransport == 'true' }} + + vercel-deploy: + if: (!cancelled() && !failure()) + needs: + - diff + uses: ./.github/workflows/_vercel_deploy.yml + secrets: inherit + with: + shouldDeployPreview: ${{ github.event_name == 'pull_request' && github.event.pull_request.draft == false }} + isExplorer: ${{ needs.diff.outputs.isExplorer == 'true' }} + isTypescriptSDK: ${{ needs.diff.outputs.isTypescriptSDK == 'true' }} + isAppsBackend: ${{ needs.diff.outputs.isAppsBackend == 'true' }} + isAppsUiKit: ${{ needs.diff.outputs.isAppsUiKit == 'true' }} + isWalletDashboard: ${{ needs.diff.outputs.isWalletDashboard == 'true' }} + + ledgernano: + if: (!cancelled() && !failure()) && needs.diff.outputs.isLedgerjs == 'true' && github.event.pull_request.draft == false + needs: + - diff + uses: ./.github/workflows/_ledgernano.yml + secrets: inherit