feat: present public Raindex market API #7153
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## | |
| ## SECURITY MODEL FOR VERCEL PREVIEW DEPLOYS FOR INTERNAL BRANCHES (READ BEFORE EDITING) | |
| ## | |
| ## This workflow runs on non-main branch pushes in this repository (not forks): | |
| ## - PR-target preview deploys (for forks) are isolated in a separate workflow | |
| ## file and use a different Vercel org and project. | |
| ## - The wrapper (checkout, nix, caches, build, Vercel pull + deploy, security | |
| ## hardening) lives in the rainix `rainix-vercel.yaml` reusable workflow; this | |
| ## file is a thin caller that selects the preview environment and maps secrets. | |
| ## | |
| ## WARNING: Changing any of the following may break the security model: | |
| ## - Triggers (the non-main push + webapp paths). | |
| ## - The reusable workflow ref / inputs. | |
| ## If you modify this file, re-validate these invariants (and those in rainix). | |
| name: GitHub Actions Vercel Preview Deployment | |
| on: | |
| push: | |
| branches-ignore: | |
| - main | |
| # Only build/deploy a preview when something webapp-relevant changed. The | |
| # webapp build pulls the wasm bindings (crates/**, incl. committed abis), | |
| # the JS workspaces (packages/**), deps, the nix toolchain, and the build | |
| # script — sol-only / CI / docs / audit pushes can't change it, so skip the | |
| # ~30-min build for them. (Not a required check, so skipping is safe.) | |
| paths: | |
| - 'packages/**' | |
| - 'crates/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| - 'flake.nix' | |
| - 'flake.lock' | |
| - 'script/vercel-build.sh' | |
| - '.github/workflows/vercel-preview.yaml' | |
| concurrency: | |
| group: ${{ format('{0}-vercel-preview', github.ref) }} | |
| cancel-in-progress: true | |
| jobs: | |
| preview: | |
| if: github.event_name == 'push' | |
| uses: rainlanguage/rainix/.github/workflows/rainix-vercel.yaml@main | |
| with: | |
| environment: preview | |
| secrets: | |
| VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} | |
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_V6 }} | |
| WALLETCONNECT_PROJECT_ID: ${{ secrets.WALLETCONNECT_PROJECT_ID }} | |
| CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} | |
| TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
| TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
| # The npm-package blacklist check is intentionally kept out of the reusable | |
| # Vercel workflow (it's a repo-specific policy gate, not part of the deploy | |
| # wrapper), so it runs here as a separate job. The action needs an installed | |
| # dependency tree (it runs `npm ls --all`), so install workspace deps first; | |
| # no wasm/webapp build is required just to inspect the tree. | |
| npm-blacklist: | |
| if: github.event_name == 'push' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: nixbuild/nix-quick-install-action@v30 | |
| with: | |
| nix_conf: | | |
| keep-env-derivations = true | |
| keep-outputs = true | |
| - uses: cachix/cachix-action@v15 | |
| continue-on-error: true | |
| with: | |
| name: rainlanguage | |
| authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} | |
| useDaemon: false | |
| - name: Restore and save Nix store | |
| uses: nix-community/cache-nix-action@v7 | |
| with: | |
| primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} | |
| restore-prefixes-first-match: nix-${{ runner.os }}- | |
| gc-max-store-size-linux: 8G | |
| - name: Install npm dependencies | |
| run: nix develop .#wasm-shell -c npm install --no-check | |
| - uses: rainlanguage/github-chore/.github/actions/npm-blacklist@main | |
| - uses: rainlanguage/github-chore/.github/actions/npm-blacklist@main | |
| with: | |
| working-directory: packages/raindex | |
| - uses: rainlanguage/github-chore/.github/actions/npm-blacklist@main | |
| with: | |
| working-directory: packages/ui-components |