Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ jobs:
- run: npm run lint
- run: npx tsc --noEmit -p .
- run: npm test
- name: Solana SDK and independent economic model
run: |
npx tsc --noEmit -p packages/solana-sdk/tsconfig.json
npx tsx --test packages/solana-sdk/tests/*.test.ts
node --experimental-strip-types --test ../packages/solana-model/*.test.mjs
- name: production build
env:
NEXT_PUBLIC_SITE_URL: https://openlaunch.lol
Expand All @@ -39,6 +44,37 @@ jobs:
NEXT_PUBLIC_LAUNCH_LOCKER_ROBINHOOD: "0xcd1680D26922fcd9CabFbb8a56bA40C333fD842a"
run: npm run build

solana:
name: Solana · host tests, SBFv3 build, offline VM
runs-on: ubuntu-latest
timeout-minutes: 35
defaults:
run:
working-directory: solana
steps:
- uses: actions/checkout@v4
Comment thread
coderabbitai[bot] marked this conversation as resolved.
with:
# Nothing here pushes or fetches with the token; keep it out of .git/config for cargo install and build tools.
persist-credentials: false
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.97.1
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: solana
- run: cargo fmt --all --check
- run: cargo test -p launch-pool --locked
- name: Install pinned build-only SBF tool
run: cargo install cargo-build-sbf --version 4.2.0 --locked --root .tools
- name: Build current SBPF format, reject stack diagnostics
run: bash scripts/check-sbf.sh
- name: Execute compiled program offline
run: cargo test --workspace --features svm-tests --locked
- name: Rust lint
run: cargo clippy --workspace --all-targets --features svm-tests --locked -- -D warnings
# No RPC credentials, wallet keys, deployments, or authority operations in CI.

contracts:
name: contracts · build + unit tests
runs-on: ubuntu-latest
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ broadcast/
.DS_Store
*.tsbuildinfo

# Solana build products and local-only test/deployment keys
solana/target/
solana/.anchor/
solana/.tools/
**/*-keypair.json
app/packages/solana-sdk/dist/

# editor/agent scratch + local deploy metadata
AGENTS.md
CLAUDE.md
Expand Down
8 changes: 8 additions & 0 deletions app/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,11 @@ IMAGE_STORE=local

# Wallets allowed to moderate posts (comma-separated, lowercase)
ADMIN_WALLETS=

# Isolated Solana review workspace (/solana). Disabled by default; not an EVM chain.
# Kevin supplies a reviewed, immutable deployment. No keys or signing on the server.
SOLANA_ENABLED=0
SOLANA_CLUSTER=devnet
SOLANA_DEVNET_PROGRAM_ID=
# HTTPS only. Mainnet requires a keyed RPC and an approved src/lib/solana/deployment.json.
SOLANA_RPC_URL=
1 change: 1 addition & 0 deletions app/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
FROM node:22-slim AS build
WORKDIR /app
COPY package.json package-lock.json ./
COPY packages/solana-sdk ./packages/solana-sdk
RUN npm ci --no-audit --no-fund

COPY . .
Expand Down
1 change: 1 addition & 0 deletions app/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { SECURITY_HEADERS } from "./src/lib/security-headers";
const nextConfig: NextConfig = {
// Fly: the Dockerfile copies .next/standalone (server.js + traced node_modules).
output: "standalone",
transpilePackages: ["@openlaunch/solana-sdk"],
// Keep the Postgres driver external (not bundled) so it is traced into
// .next/standalone/node_modules and scripts/migrate.mjs can import it inside
// the image (release_command runs there, outside the Next server).
Expand Down
Loading
Loading