diff --git a/.github/workflows/issue-to-notion.yml b/.github/workflows/issue-to-notion.yml deleted file mode 100644 index a1ada2c06..000000000 --- a/.github/workflows/issue-to-notion.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Github issue -> Notion card -on: - workflow_dispatch: - issues: - types: [opened] -jobs: - issue: - name: "Issue to Notion" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - run: | - people=$(for i in $(echo $NOTION_USER_IDS | tr "," " "); do echo -n '{"object":"user","id":"'$i'"},'; done) - curl 'https://api.notion.com/v1/pages' \ - -H 'Authorization: Bearer '"$NOTION_TOKEN"'' \ - -H "Content-Type: application/json" \ - -H "Notion-Version: 2022-02-22" \ - --data '{"parent":{"type":"database_id","database_id":"'"$DATABASE_ID"'"},"icon":{"type":"emoji","emoji":"πŸ›"},"properties":{"Name":{"type":"title","title":[{"type":"text","text":{"content":"'"$(echo $TITLE | tr '"' "'")"'"}}]},"Assigned":{"people":['${people:0:-1}']},"Status":{"select":{"name":"'"$STATUS"'"}},"Flag":{"multi_select":[{"name":"'"$FLAG"'"}]},"Database":{"multi_select":[{"name":"'"$DATABASE_NAME"'"}]},"Type":{"multi_select":[{"name":"bug"}]},"Project":{"multi_select":[{"name":"'"$PROJECT_NAME"'"}]}},"children":[{"object":"block","type":"bookmark","bookmark":{"url":"'"$ISSUE_URL"'"}}]}' - env: - NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }} - STATE: ${{ github.event.issue.state }} - ISSUE_URL: ${{ github.event.issue.html_url }} - TITLE: ${{ github.event.issue.title }} - FLAG: Next Sprint - DATABASE_NAME: Product - STATUS: Backlog - # Product Work Board - DATABASE_ID: 69f0e513a59d445b87a1baed729c75c5 - PROJECT_NAME: web3-onboard - # User ids of who to assign the card to in notion: Taylor, Adam, Aaron - NOTION_USER_IDS: f6cbb362-4908-4138-9ef0-434003d9a9f8,8a3a2287-5d2c-4665-906d-02ae9a113340,3b407adf-6552-40de-b22f-5efa852c34a2,436b76c5-fed3-42d2-b3ca-49bb882843f8 - shell: bash diff --git a/.github/workflows/node-production.yml b/.github/workflows/node-production.yml new file mode 100644 index 000000000..63f0f3f28 --- /dev/null +++ b/.github/workflows/node-production.yml @@ -0,0 +1,175 @@ +name: Node Packages – Production Release + +on: + push: + branches: [main] + +permissions: + contents: read + id-token: write # for provenance / npm‑pkg OIDC + packages: write + +env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + +jobs: + build-and-publish: + name: Build & publish ${{ matrix.package }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - package: core # 1 + node: 22 + - package: common # 2 + node: 22 + - package: fortmatic # 3 + node: 22 + - package: gnosis # 4 + node: 22 + - package: injected # 5 + node: 22 + - package: frame # 6 + node: 22 + - package: keepkey # 7 + node: 22 + - package: keystone # 8 + node: 22 + - package: ledger # 9 + node: 22 + - package: mew # 10 + node: 22 + - package: mew-wallet # 11 + node: 22 + - package: portis # 12 + node: 22 + - package: torus # 13 + node: 22 + - package: trezor # 14 + node: 22 + - package: trust # 15 + node: 22 + - package: okx # 16 + node: 22 + - package: frontier # 17 + node: 22 + - package: walletconnect # 18 + node: 22 + - package: walletlink # 19 + node: 22 + - package: react # 20 + node: 22 + - package: magic # 21 + node: 22 + - package: coinbase # 22 + node: 22 + - package: web3auth # 23 + node: 22 + - package: dcent # 24 + node: 22 + - package: vue # 25 + node: 22 + - package: gas # 26 + node: 22 + - package: hw-common # 27 + node: 22 + - package: sequence # 28 + node: 22 + - package: tallyho # 29 + node: 22 + - package: enkrypt # 30 + node: 22 + - package: uauth # 31 + node: 22 + - package: transaction-preview # 32 + node: 22 + - package: zeal # 33 + node: 22 + - package: phantom # 34 + node: 22 + - package: xdefi # 35 + node: 22 + - package: infinity-wallet # 36 + node: 22 + - package: taho # 37 + node: 22 + - package: unstoppable-resolution # 38 + node: 22 + - package: cede-store # 39 + node: 22 + - package: arcana-auth # 40 + node: 22 + - package: blocto # 41 + node: 22 + - package: venly # 42 + node: 22 + - package: bitget # 43 + node: 22 + - package: bitkeep # 44 + node: 22 + - package: metamask # 45 + node: 22 + - package: solid # 46 + node: 22 + - package: para # 47 + node: 22 + - package: particle-network # 48 + node: 22 + - package: finoaconnect # 49 + node: 22 + - package: wagmi # 50 + node: 22 + - package: passport # 51 + node: 22 + - package: bloom # 52 + node: 22 + - package: keplr # 53 + node: 22 + + defaults: + run: + shell: bash + working-directory: packages/${{ matrix.package }} + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Use Node ${{ matrix.node }} + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version: ${{ matrix.node }} + registry-url: https://registry.npmjs.org/ + + # ────── skip alpha versions ────── + - id: version + run: echo "v=$(node -p 'require(\"./package.json\").version')" >> "$GITHUB_OUTPUT" + + - name: Skip alpha builds on main + if: contains(steps.version.outputs.v, '-alpha') + run: echo "Alpha version detected – skipping publish." + # ───────────────────────────────── + + - name: Cache Yarn + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: | + ~/.cache/yarn + node_modules + key: ${{ runner.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock') }} + + - name: Generate workspace lock‑file + run: yarn generate-lock-entry >> yarn.lock + + - name: Install dependencies + run: yarn --immutable + + - name: Type‑check & build + run: | + yarn type-check + yarn build + + - name: Publish to npm (latest) + if: ${{ !contains(steps.version.outputs.v, '-alpha') }} + run: npm publish --access public diff --git a/.github/workflows/node-staging.yml b/.github/workflows/node-staging.yml new file mode 100644 index 000000000..d4d0463ff --- /dev/null +++ b/.github/workflows/node-staging.yml @@ -0,0 +1,175 @@ +name: Node Packages – StagingΒ (Alpha ➜ next) + +on: + push: + branches: [develop] + +permissions: + contents: read + id-token: write + packages: write + +env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + +jobs: + build-and-publish: + name: Build & publish alpha ${{ matrix.package }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - package: core + node: 22 + - package: common + node: 22 + - package: fortmatic + node: 22 + - package: gnosis + node: 22 + - package: injected + node: 22 + - package: frame + node: 22 + - package: keepkey + node: 22 + - package: keystone + node: 22 + - package: ledger + node: 22 + - package: mew + node: 22 + - package: mew-wallet + node: 22 + - package: portis + node: 22 + - package: torus + node: 22 + - package: trezor + node: 22 + - package: trust + node: 22 + - package: okx + node: 22 + - package: frontier + node: 22 + - package: walletconnect + node: 22 + - package: walletlink + node: 22 + - package: react + node: 22 + - package: magic + node: 22 + - package: coinbase + node: 22 + - package: web3auth + node: 22 + - package: dcent + node: 22 + - package: vue + node: 22 + - package: gas + node: 22 + - package: hw-common + node: 22 + - package: sequence + node: 22 + - package: tallyho + node: 22 + - package: enkrypt + node: 22 + - package: uauth + node: 22 + - package: transaction-preview + node: 22 + - package: zeal + node: 22 + - package: phantom + node: 22 + - package: xdefi + node: 22 + - package: infinity-wallet + node: 22 + - package: taho + node: 22 + - package: unstoppable-resolution + node: 22 + - package: cede-store + node: 22 + - package: arcana-auth + node: 22 + - package: blocto + node: 22 + - package: venly + node: 22 + - package: bitget + node: 22 + - package: bitkeep + node: 22 + - package: metamask + node: 22 + - package: solid + node: 22 + - package: para + node: 22 + - package: particle-network + node: 22 + - package: finoaconnect + node: 22 + - package: wagmi + node: 22 + - package: passport + node: 22 + - package: bloom + node: 22 + - package: keplr + node: 22 + + defaults: + run: + shell: bash + working-directory: packages/${{ matrix.package }} + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Use Node ${{ matrix.node }} + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version: ${{ matrix.node }} + registry-url: https://registry.npmjs.org/ + + # ────── only publish *alpha* versions ────── + - id: version + run: echo "v=$(node -p 'require(\"./package.json\").version')" >> "$GITHUB_OUTPUT" + + - name: Skip non‑alpha builds on develop + if: ${{ !contains(steps.version.outputs.v, '-alpha') }} + run: echo "Not an alpha – skipping publish." + # ─────────────────────────────────────────── + + - name: Cache Yarn + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: | + ~/.cache/yarn + node_modules + key: ${{ runner.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock') }} + + - name: Generate workspace lock‑file + run: yarn generate-lock-entry >> yarn.lock + + - name: Install dependencies + run: yarn --immutable + + - name: Type‑check & build + run: | + yarn type-check + yarn build + + - name: Publish to npm (next) + if: contains(steps.version.outputs.v, '-alpha') + run: npm publish --tag next --access public diff --git a/.github/workflows/pr-status-checks.yml b/.github/workflows/pr-status-checks.yml index 3d2141853..5d2c1bb66 100644 --- a/.github/workflows/pr-status-checks.yml +++ b/.github/workflows/pr-status-checks.yml @@ -19,8 +19,7 @@ jobs: - name: Setup Nodejs and yarn uses: actions/setup-node@v2 with: - node-version: "20.18.0" - cache: yarn + node-version: 22 - name: Install dependencies run: yarn