Skip to content

Commit a882c39

Browse files
authored
Merge pull request #145 from dotindustries/feat/beta-launch-gtm
feat: WarpGrid Cloud Platform (beta launch)
2 parents bfb7d8e + d85b1f9 commit a882c39

File tree

449 files changed

+16284
-2555
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

449 files changed

+16284
-2555
lines changed

.dockerignore

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Build artifacts
2+
target/
3+
build/
4+
node_modules/
5+
6+
# Version control
7+
.git/
8+
.gitignore
9+
10+
# Non-Rust directories (not needed for warpd build)
11+
packages/
12+
test-apps/
13+
tests/
14+
examples/
15+
demos/
16+
17+
# Documentation and metadata
18+
docs/
19+
AGENTS.md
20+
README.md
21+
LICENSE
22+
warpgrid-sdk-plan.md
23+
wasm-orchestrator-plan.md
24+
beads-to-github-mapping.json
25+
26+
# IDE and tooling
27+
.claude/
28+
.beads/
29+
.context/
30+
.codegraph/
31+
.idea/
32+
.ralph-tui/
33+
.tervezo/
34+
.github/
35+
.DS_Store
36+
37+
# Infra (avoid copying Dockerfile into its own context)
38+
infra/
39+
40+
# Vendor and patches (not needed for Rust build)
41+
vendor/
42+
patches/
43+
libc-patches/
44+
45+
# Scripts and task definitions
46+
scripts/
47+
tasks/
48+
test-infra/

.github/actions/deploy/README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Deploy to WarpGrid Action
2+
3+
A composite GitHub Action that builds and deploys a Wasm component to WarpGrid Cloud.
4+
5+
## Inputs
6+
7+
| Input | Description | Required | Default |
8+
|-------|-------------|----------|---------|
9+
| `api-key` | WarpGrid API key | Yes ||
10+
| `api-url` | WarpGrid Cloud API URL | No | `https://app.warpgrid.dev` |
11+
| `region` | Target region (`iad`, `ams`, `sin`, `gru`, `syd`, or `all`) | No | `iad` |
12+
| `lang` | Override build language (`rust`, `go`, `bun`, `typescript`) | No ||
13+
| `working-directory` | Project directory | No | `.` |
14+
15+
## Outputs
16+
17+
| Output | Description |
18+
|--------|-------------|
19+
| `deployment-url` | URL of the deployed application |
20+
21+
## Usage
22+
23+
```yaml
24+
# .github/workflows/deploy.yml
25+
name: Deploy to WarpGrid
26+
on:
27+
push:
28+
branches: [main]
29+
jobs:
30+
deploy:
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@v4
34+
- uses: ./.github/actions/deploy
35+
with:
36+
api-key: ${{ secrets.WARPGRID_API_KEY }}
37+
region: iad
38+
```
39+
40+
### Deploy to multiple regions
41+
42+
```yaml
43+
jobs:
44+
deploy:
45+
runs-on: ubuntu-latest
46+
steps:
47+
- uses: actions/checkout@v4
48+
- uses: ./.github/actions/deploy
49+
with:
50+
api-key: ${{ secrets.WARPGRID_API_KEY }}
51+
region: all
52+
```
53+
54+
### Deploy a specific language project
55+
56+
```yaml
57+
jobs:
58+
deploy:
59+
runs-on: ubuntu-latest
60+
steps:
61+
- uses: actions/checkout@v4
62+
- uses: ./.github/actions/deploy
63+
with:
64+
api-key: ${{ secrets.WARPGRID_API_KEY }}
65+
lang: typescript
66+
working-directory: ./my-app
67+
```

.github/actions/deploy/action.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: 'Deploy to WarpGrid'
2+
description: 'Build and deploy a Wasm component to WarpGrid Cloud'
3+
inputs:
4+
api-key:
5+
description: 'WarpGrid API key'
6+
required: true
7+
api-url:
8+
description: 'WarpGrid Cloud API URL'
9+
required: false
10+
default: 'https://app.warpgrid.dev'
11+
region:
12+
description: 'Target region (iad, ams, sin, gru, syd, or all)'
13+
required: false
14+
default: 'iad'
15+
lang:
16+
description: 'Override build language (rust, go, bun, typescript)'
17+
required: false
18+
working-directory:
19+
description: 'Project directory'
20+
required: false
21+
default: '.'
22+
outputs:
23+
deployment-url:
24+
description: 'URL of the deployed application'
25+
value: ${{ steps.deploy.outputs.url }}
26+
runs:
27+
using: 'composite'
28+
steps:
29+
- name: Install warp CLI
30+
shell: bash
31+
run: |
32+
ARCH=$(uname -m)
33+
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
34+
case "${OS}-${ARCH}" in
35+
linux-x86_64) BINARY="warp-linux-x64" ;;
36+
linux-aarch64) BINARY="warp-linux-arm64" ;;
37+
darwin-x86_64) BINARY="warp-darwin-x64" ;;
38+
darwin-arm64) BINARY="warp-darwin-arm64" ;;
39+
*) echo "Unsupported: ${OS}-${ARCH}"; exit 1 ;;
40+
esac
41+
# Try prebuilt binary first, fall back to cargo install
42+
if curl -fsSL "https://github.com/dotindustries/warpgrid/releases/latest/download/${BINARY}" -o /usr/local/bin/warp 2>/dev/null; then
43+
chmod +x /usr/local/bin/warp
44+
echo "Installed prebuilt warp CLI"
45+
else
46+
echo "Prebuilt not available, building from source..."
47+
cargo install --path crates/warp-cli --root $HOME/.local
48+
echo "$HOME/.local/bin" >> $GITHUB_PATH
49+
fi
50+
- name: Configure credentials
51+
shell: bash
52+
run: |
53+
mkdir -p ~/.warpgrid
54+
cat > ~/.warpgrid/config.toml << EOF
55+
api_key = "${{ inputs.api-key }}"
56+
api_url = "${{ inputs.api-url }}"
57+
EOF
58+
- name: Deploy
59+
id: deploy
60+
shell: bash
61+
working-directory: ${{ inputs.working-directory }}
62+
run: |
63+
ARGS="--region ${{ inputs.region }}"
64+
if [ -n "${{ inputs.lang }}" ]; then
65+
ARGS="$ARGS --lang ${{ inputs.lang }}"
66+
fi
67+
warp deploy $ARGS

.github/workflows/ci.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,55 @@ jobs:
1616
runs-on: blacksmith-4vcpu-ubuntu-2404
1717
steps:
1818
- uses: actions/checkout@v4
19+
- name: Install protoc
20+
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler binaryen
1921
- uses: dtolnay/rust-toolchain@stable
2022
with:
2123
components: clippy, rustfmt
24+
targets: wasm32-unknown-unknown
2225
- uses: Swatinem/rust-cache@v2
26+
- name: Install wasm-tools
27+
run: cargo install wasm-tools
28+
- uses: actions/setup-go@v5
29+
with:
30+
go-version: '1.22'
31+
- name: Install TinyGo
32+
run: scripts/build-tinygo.sh --download
2333
- name: Format
2434
run: cargo fmt --all -- --check
2535
- name: Clippy
2636
run: cargo clippy --all-targets --all-features
2737
- name: Test
2838
run: cargo test --all
2939

40+
docker:
41+
name: Docker Build
42+
runs-on: blacksmith-4vcpu-ubuntu-2404
43+
steps:
44+
- uses: actions/checkout@v4
45+
- uses: useblacksmith/setup-docker-builder@v1
46+
- name: Build Docker image
47+
uses: useblacksmith/build-push-action@v2
48+
with:
49+
context: .
50+
file: infra/Dockerfile
51+
push: false
52+
load: true
53+
tags: warpgrid:ci
54+
- name: Verify binary works
55+
run: docker run --rm warpgrid:ci --help
56+
3057
wasi-libc:
3158
name: Build & Test wasi-libc
3259
runs-on: blacksmith-4vcpu-ubuntu-2404
3360
steps:
3461
- uses: actions/checkout@v4
3562

63+
- name: Configure git identity (required by git am)
64+
run: |
65+
git config --global user.email "ci@warpgrid.dev"
66+
git config --global user.name "WarpGrid CI"
67+
3668
- name: Install wasmtime
3769
uses: bytecodealliance/actions/wasmtime/setup@v1
3870
with:

.github/workflows/release-cli.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Release CLI Binary
2+
3+
on:
4+
push:
5+
tags: ['v*']
6+
workflow_dispatch:
7+
8+
jobs:
9+
build:
10+
strategy:
11+
matrix:
12+
include:
13+
- target: x86_64-unknown-linux-gnu
14+
os: ubuntu-latest
15+
artifact: warp-linux-x64
16+
- target: aarch64-unknown-linux-gnu
17+
os: ubuntu-latest
18+
artifact: warp-linux-arm64
19+
- target: x86_64-apple-darwin
20+
os: macos-latest
21+
artifact: warp-darwin-x64
22+
- target: aarch64-apple-darwin
23+
os: macos-latest
24+
artifact: warp-darwin-arm64
25+
26+
runs-on: ${{ matrix.os }}
27+
steps:
28+
- uses: actions/checkout@v4
29+
- uses: dtolnay/rust-toolchain@stable
30+
with:
31+
targets: ${{ matrix.target }}
32+
- name: Install cross-compilation tools
33+
if: matrix.target == 'aarch64-unknown-linux-gnu'
34+
run: |
35+
sudo apt-get update
36+
sudo apt-get install -y gcc-aarch64-linux-gnu
37+
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
38+
- name: Build
39+
run: cargo build --release --package warp-cli --target ${{ matrix.target }}
40+
- name: Rename binary
41+
run: cp target/${{ matrix.target }}/release/warp ${{ matrix.artifact }}
42+
- uses: actions/upload-artifact@v4
43+
with:
44+
name: ${{ matrix.artifact }}
45+
path: ${{ matrix.artifact }}
46+
47+
release:
48+
needs: build
49+
runs-on: ubuntu-latest
50+
if: startsWith(github.ref, 'refs/tags/')
51+
permissions:
52+
contents: write
53+
steps:
54+
- uses: actions/download-artifact@v4
55+
- name: Create Release
56+
uses: softprops/action-gh-release@v2
57+
with:
58+
files: |
59+
warp-linux-x64/warp-linux-x64
60+
warp-linux-arm64/warp-linux-arm64
61+
warp-darwin-x64/warp-darwin-x64
62+
warp-darwin-arm64/warp-darwin-arm64

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,7 @@ test-apps/**/target/
1515
test-apps/**/Cargo.lock
1616
__pycache__/
1717
/test-results
18+
docs/GTM-BETA-LAUNCH-PLAN.md
19+
docs/IMPLEMENTATION-PLAN-PHASE2.md
20+
warpgrid.toml
21+
tests/fixtures/rust-sqlx-postgres-guest/target/

0 commit comments

Comments
 (0)