Skip to content

chore: Separate examples from SDK install and builds #85

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 21, 2023
Merged
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
76 changes: 76 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
version: 2
updates:
# Dependencies in our packages

- package-ecosystem: "npm"
directory: "/"
schedule:
Expand All @@ -22,3 +24,77 @@ updates:
# Headers in DOM.
- dependency-name: "@types/node"
versions: [">18.18"]

# Dependencies in our examples

- package-ecosystem: "npm"
directory: "/examples/nextjs-13-pages-wrap"
schedule:
# Our dependencies should be checked daily
interval: "daily"
assignees:
- blaine-arcjet
reviewers:
- blaine-arcjet
commit-message:
prefix: "deps"
prefix-development: "deps(dev)"
ignore:
# Ignore updates to the @types/node package due to conflict between
# Headers in DOM.
- dependency-name: "@types/node"
versions: [">18.18"]

- package-ecosystem: "npm"
directory: "/examples/nextjs-14-app-dir-rl"
schedule:
# Our dependencies should be checked daily
interval: "daily"
assignees:
- blaine-arcjet
reviewers:
- blaine-arcjet
commit-message:
prefix: "deps"
prefix-development: "deps(dev)"
ignore:
# Ignore updates to the @types/node package due to conflict between
# Headers in DOM.
- dependency-name: "@types/node"
versions: [">18.18"]

- package-ecosystem: "npm"
directory: "/examples/nextjs-14-app-dir-validate-email"
schedule:
# Our dependencies should be checked daily
interval: "daily"
assignees:
- blaine-arcjet
reviewers:
- blaine-arcjet
commit-message:
prefix: "deps"
prefix-development: "deps(dev)"
ignore:
# Ignore updates to the @types/node package due to conflict between
# Headers in DOM.
- dependency-name: "@types/node"
versions: [">18.18"]

- package-ecosystem: "npm"
directory: "/examples/nextjs-14-pages-wrap"
schedule:
# Our dependencies should be checked daily
interval: "daily"
assignees:
- blaine-arcjet
reviewers:
- blaine-arcjet
commit-message:
prefix: "deps"
prefix-development: "deps(dev)"
ignore:
# Ignore updates to the @types/node package due to conflict between
# Headers in DOM.
- dependency-name: "@types/node"
versions: [">18.18"]
144 changes: 144 additions & 0 deletions .github/workflows/examples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
name: "Build examples"

on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
nextjs-13-pages-wrap:
name: "Next.js 13 + Page Router + withArcjet"
runs-on: ubuntu-latest
steps:
# Environment security
- name: Step Security
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
with:
egress-policy: audit

# Checkout
# Most toolchains require checkout first
- name: Checkout
uses: actions/checkout@v4

# Language toolchains
- name: Install Node
uses: actions/[email protected]
with:
node-version: 20

# Workflow

- name: Install dependencies
run: npm ci

- name: Install example dependencies
working-directory: examples/nextjs-13-pages-wrap
run: npm ci

- name: Build
working-directory: examples/nextjs-13-pages-wrap
run: npm run build

nextjs-14-app-dir-rl:
name: "Next.js 14 + App Router + Rate Limit"
runs-on: ubuntu-latest
steps:
# Environment security
- name: Step Security
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
with:
egress-policy: audit

# Checkout
# Most toolchains require checkout first
- name: Checkout
uses: actions/checkout@v4

# Language toolchains
- name: Install Node
uses: actions/[email protected]
with:
node-version: 20

# Workflow

- name: Install dependencies
run: npm ci

- name: Install example dependencies
working-directory: examples/nextjs-14-app-dir-rl
run: npm ci

- name: Build
working-directory: examples/nextjs-14-app-dir-rl
run: npm run build

nextjs-14-app-dir-validate-email:
name: "Next.js 14 + App Router + Validate Email"
runs-on: ubuntu-latest
steps:
# Environment security
- name: Step Security
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
with:
egress-policy: audit

# Checkout
# Most toolchains require checkout first
- name: Checkout
uses: actions/checkout@v4

# Language toolchains
- name: Install Node
uses: actions/[email protected]
with:
node-version: 20

# Workflow

- name: Install dependencies
run: npm ci

- name: Install example dependencies
working-directory: examples/nextjs-14-app-dir-validate-email
run: npm ci

- name: Build
working-directory: examples/nextjs-14-app-dir-validate-email
run: npm run build

nextjs-14-pages-wrap:
name: "Next.js 14 + Page Router + withArcjet"
runs-on: ubuntu-latest
steps:
# Environment security
- name: Step Security
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
with:
egress-policy: audit

# Checkout
# Most toolchains require checkout first
- name: Checkout
uses: actions/checkout@v4

# Language toolchains
- name: Install Node
uses: actions/[email protected]
with:
node-version: 20

# Workflow

- name: Install dependencies
run: npm ci

- name: Install example dependencies
working-directory: examples/nextjs-14-pages-wrap
run: npm ci

- name: Build
working-directory: examples/nextjs-14-pages-wrap
run: npm run build
1 change: 1 addition & 0 deletions examples/nextjs-13-pages-wrap/.npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
omit=optional
14 changes: 10 additions & 4 deletions examples/nextjs-13-pages-wrap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,24 @@ Route](https://nextjs.org/docs/pages/building-your-application/routing/api-route

## How to use

1. From the root of the project, install the dependencies.
1. From the root of the project, install the SDK dependencies.

```bash
npm ci
```

2. Enter this directory and start the dev server.
2. Enter this directory and install the example's dependencies.

```bash
cd examples/nextjs-13-pages-wrap
npm ci
```

3. Start the dev server.

```bash
npm run dev
```

3. Visit `http://localhost:3000/api/arcjet`.
4. Refresh the page to trigger the rate limit.
4. Visit `http://localhost:3000/api/arcjet`.
5. Refresh the page to trigger the rate limit.
Loading