Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
1b3d8b2
feat: replatform electron for testing-view and fix app mode bug
maximka76667 Feb 4, 2026
2e1cf89
feat: make packet-sender work with electron
maximka76667 Feb 4, 2026
b2f10eb
feat: change some names
maximka76667 Feb 4, 2026
2684034
feat: small fixes
maximka76667 Feb 5, 2026
3c833a8
chore: move shell.nix to software root
maximka76667 Feb 5, 2026
6db4cb4
chore(deps): update dependencies and related components
maximka76667 Feb 5, 2026
a9696aa
chore: move shell.nix
maximka76667 Feb 5, 2026
1d0ee21
feat: remove Footer
maximka76667 Feb 5, 2026
1c3d98b
chore(dependabot): change dependabots configuration
maximka76667 Feb 5, 2026
f3d7931
chore(monorepo): add some useful scripts
maximka76667 Feb 5, 2026
9485f9f
feat: add config.ts to store some hardcoded values
maximka76667 Feb 5, 2026
855a4d1
feat: add filtered variables count badge
maximka76667 Feb 5, 2026
b394cf8
docs: some comments
maximka76667 Feb 5, 2026
2fdf970
style: change font size
maximka76667 Feb 5, 2026
49b66bf
docs: add more comments to constants folder
maximka76667 Feb 5, 2026
48972ea
refact: change some interfaces to types and fix any types
maximka76667 Feb 5, 2026
5a0c476
fix: charts created with "add chart" button had fixed size
maximka76667 Feb 5, 2026
70cbcf8
style: change default layout
maximka76667 Feb 5, 2026
91eec34
style: fix paddings in the right sidebar
maximka76667 Feb 5, 2026
f5c2c6d
feat: make build work with new electron
maximka76667 Feb 11, 2026
c91a3d7
test
maximka76667 Feb 11, 2026
6973431
fix: pnpm version
maximka76667 Feb 11, 2026
72c9f49
feat: disable competition-view
maximka76667 Feb 11, 2026
ee9886a
test
maximka76667 Feb 11, 2026
fe4e603
Update package.json
maximka76667 Feb 11, 2026
7569b03
feat: fix release.yaml action
maximka76667 Feb 11, 2026
54742c9
feat: replace npm with pnpm
maximka76667 Feb 11, 2026
771ceee
feat: remove useConfirmClose
maximka76667 Feb 11, 2026
63cb5aa
feat: increase restart timeout
maximka76667 Feb 12, 2026
4536823
feat: add auto updater and include .yml files into the release
maximka76667 Feb 12, 2026
37c9490
feat: add artifact names for windows
maximka76667 Feb 12, 2026
6f37346
fix
maximka76667 Feb 12, 2026
846ae9c
feat: add blockmaps to release, add app-update files and update resta…
maximka76667 Feb 12, 2026
57413cf
feat: install picocolors, improve logging and change meta data to mat…
maximka76667 Feb 12, 2026
f7cd2d0
feat: remove colors file and improve logging
maximka76667 Feb 12, 2026
0de06b9
feat: add icons
maximka76667 Feb 12, 2026
d88b437
fix: background throttling and first packet rerender
maximka76667 Feb 13, 2026
a77d0cc
Merge branch 'production' into control-station/re-platform-electron
maximka76667 Feb 16, 2026
b940d47
Merge pull request #1 from Hyperloop-UPV/control-station/re-platform-…
maximka76667 Feb 16, 2026
2d069ad
feat: change right sidebar layout and add a little bit of autoresizing
maximka76667 Feb 16, 2026
0303b00
Merge branch 'develop' into production
Humanoidear Feb 16, 2026
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
17 changes: 13 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,19 @@ updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
target-branch: "develop"
interval: "weekly"
target-branch: "develop"
# Ignore all patch updates (e.g. 1.0.1 -> 1.0.2)
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]

- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
target-branch: "main"
interval: "weekly"
target-branch: "main"
# Ignore all patch updates (e.g. 1.0.1 -> 1.0.2)
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
560 changes: 135 additions & 425 deletions .github/workflows/build.yaml

Large diffs are not rendered by default.

38 changes: 23 additions & 15 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,22 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 10.26.0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "pnpm"

# Update package.json with release version
- name: Update version in package.json
working-directory: electron-app
shell: bash
run: |
npm version ${{ needs.determine-version.outputs.version }} --no-git-tag-version
pnpm version ${{ needs.determine-version.outputs.version }} --no-git-tag-version
echo "Updated version to:"
cat package.json | grep version

Expand Down Expand Up @@ -123,35 +128,36 @@ jobs:
path: electron-app/binaries

# Download frontend builds from latest build
- name: Download control-station
uses: dawidd6/action-download-artifact@v3
with:
workflow: build.yaml
branch: production
workflow_conclusion: success
name: control-station
path: electron-app/renderer/control-station

- name: Download ethernet-view
# TODO: Uncomment when competition view is ready
# - name: Download competition-view
# uses: dawidd6/action-download-artifact@v3
# with:
# workflow: build.yaml
# branch: production
# workflow_conclusion: success
# name: competition-view
# path: electron-app/renderer/competition-view

- name: Download testing-view
uses: dawidd6/action-download-artifact@v3
with:
workflow: build.yaml
branch: production
workflow_conclusion: success
name: ethernet-view
path: electron-app/renderer/ethernet-view
name: testing-view
path: electron-app/renderer/testing-view

- name: Set executable permissions (Unix)
if: runner.os != 'Windows'
run: chmod +x electron-app/binaries/*

- name: Install Electron dependencies
working-directory: electron-app
run: npm ci
run: pnpm install

- name: Build Electron distribution
working-directory: electron-app
run: npm run dist
run: pnpm run dist
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_IDENTITY_AUTO_DISCOVERY: false
Expand All @@ -178,6 +184,8 @@ jobs:
electron-app/dist/*.deb
electron-app/dist/*.dmg
electron-app/dist/*.zip
electron-app/dist/*.yml
electron-app/dist/*.blockmap
!electron-app/dist/*-unpacked
!electron-app/dist/mac
!electron-app/dist/win-unpacked
Expand Down
1 change: 1 addition & 0 deletions backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"dev": "go run ./cmd --config ./cmd/dev-config.toml",
"dev:main": "go run ./cmd --config ./cmd/config.toml",
"build": "go build -o bin/backend ./cmd",
"build:ci": "go build",
"test": "go test ./..."
}
}
71 changes: 71 additions & 0 deletions electron-app/BUILD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Hyperloop Control Station Build System

The project uses a unified, modular build script (`electron-app/build.mjs`) to handle building the backend (Go), packet sender (Rust), and frontends (React/Vite) for the Electron application.

## Prerequisites

- **Node.js** & **pnpm**
- **Go** (1.21+)
- **Rust/Cargo** (for Packet Sender)

## Basic Usage

Run the build script from the `electron-app` directory (or via npm scripts).

```sh
# Build EVERYTHING (Backend, Packet Sender, Frontends)
pnpm build

# OR
node build.mjs
```

## Configuration

The build configuration is defined in `electron-app/build.mjs` within the `CONFIG` object.

## Build Specific Components

You can build individual components by passing their flag.

```sh
# Build only the Backend
node build.mjs --backend

# Build only the Testing View
node build.mjs --testing-view

# Build only the Packet Sender
node build.mjs --packet-sender
```

## Platform Targeting

By default, the script builds for all defined platforms (Windows, Linux, macOS). You can limit this using flags.

```sh
# Build backend for Windows only
node build.mjs --backend --win

# Build everything for Linux
node build.mjs --linux
```

## Advanced: Overwriting Commands

The build script allows you to override configuration properties on the fly. This is useful for CI pipelines where you might want to use different build commands or flags.

**Syntax**: `--[target].[property]="value"`

### Examples

```sh
# Use a custom build command for the backend:
node build.mjs --backend --backend.commands="pnpm run build:prod --"

# Change the output directory
node build.mjs --backend --backend.output="./dist/bin"

# Pass arguments to the underlying tools (passes -v)
node build.mjs --backend -- -v
```
4 changes: 4 additions & 0 deletions electron-app/app-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
provider: github
owner: Hyperloop-UPV
repo: software
updaterCacheDirName: hyperloop-control-station/updater
Loading
Loading