Skip to content
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
37 changes: 37 additions & 0 deletions .github/workflows/publish-benchmarks-website.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Publish Benchmarks Website

on:
push:
branches: [develop]
paths:
- "benchmarks-website-v2/**"

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build and push
uses: docker/build-push-action@v6
with:
context: ./benchmarks-website-v2
platforms: linux/arm64
push: true
tags: ghcr.io/${{ github.repository }}/benchmarks-website:latest
5 changes: 5 additions & 0 deletions REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ path = "benchmarks-website/**"
SPDX-FileCopyrightText = "Copyright the Vortex contributors"
SPDX-License-Identifier = "CC-BY-4.0"

[[annotations]]
path = "benchmarks-website-v2/**"
SPDX-FileCopyrightText = "Copyright the Vortex contributors"
SPDX-License-Identifier = "CC-BY-4.0"

# Golden files are licensed under CC-BY-4.0.
[[annotations]]
path = "**/goldenfiles/**"
Expand Down
3 changes: 3 additions & 0 deletions benchmarks-website-v2/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
dist
.git
2 changes: 2 additions & 0 deletions benchmarks-website-v2/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
dist
15 changes: 15 additions & 0 deletions benchmarks-website-v2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM node:24-alpine AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:24-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --omit=dev
COPY --from=build /app/dist ./dist
COPY server.js .
EXPOSE 3000
CMD ["node", "server.js"]
15 changes: 15 additions & 0 deletions benchmarks-website-v2/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
services:
benchmarks-website:
image: ghcr.io/vortex-data/vortex/benchmarks-website:latest
ports:
- "80:3000"
restart: unless-stopped

watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_POLL_INTERVAL=60
- WATCHTOWER_CLEANUP=true
restart: unless-stopped
17 changes: 17 additions & 0 deletions benchmarks-website-v2/ec2-init.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
1. Install Docker
# Amazon Linux 2023
sudo yum install -y docker
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

2. Install Docker Compose plugin
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-aarch64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

3. Set up and start the app
sudo mkdir -p /opt/benchmarks-website
sudo cp docker-compose.yml /opt/benchmarks-website/
cd /opt/benchmarks-website
docker compose up -d
36 changes: 36 additions & 0 deletions benchmarks-website-v2/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vortex Benchmarks</title>

<!-- Preconnect to font services -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />

<!-- Web Fonts -->
<link
href="https://fonts.googleapis.com/css2?family=Funnel+Display:wght@300;400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://unpkg.com/geist@1.3.0/dist/fonts/geist-sans/style.css"
/>
<link
rel="stylesheet"
href="https://unpkg.com/geist@1.3.0/dist/fonts/geist-mono/style.css"
/>

<!-- Favicons -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Loading
Loading